Uploaded by Hossam Ismail

kupdf.net rulebook

advertisement
Alternative
Transients
Program
(ATP)
Rule Book
Copyright © 1987-92 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
The Fontaine , Unit 6B
3179 Oak Tree Court
1220 N.E. 17-th Avenue
West Linn , Oregon 97068
Portland , Oregon 97232
United States of America
Rulebook ATP (junio 1996 - internet)
0.
Table
of
H01
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
A.
B.
C.
D.
E.
F.
G.
H.
I.
J.
K.
L.
II.
III.
F.
About
ATP
Version
of
that
Begin
a
New
Data
Case
Special-request cards having key words
Miscellaneous data cards
Extensions to miscellaneous data cards
TACS
A.
B.
C.
D.
E.
Information
EMTP
Background of ATP; user groups; ATP education
1. History of royalty-free EMTP Development
2. Learning to use ATP; user groups; newsletters; E-mail
Development centers for ATP
Summary program capability; ways execution begins
$-cards of SUBROUTINE CIMAGE
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
Different computer systems, specific details for all brands
Variable dimensioning and Dynamic Dimensioning
FORTRAN data format specifications
Structure of EMTP input data
EMTP data sorting by class (use of "/" cards)
$INCLUDE use for data modularization (including arguments)
Separate interactive plotting programs:
1. TPPLOT
for sophisticated, single-window, plotting
2. WINDOWPLT for simpler, multiple-window, plotting
Cards
A.
B.
C.
Introductory
and
MODELS
to
Simulate
Control
Systems
Purpose of TACS
Summary of TACS capability
How to simulate what
TACS steady-state initialization rules
TACS elements and card formats
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
MODELS : more powerful, flexible, and newer than TACS
ADOLFO DELGADOIV.
Branch
Cards
to
Model
Linear
Elements
1
Rulebook ATP (junio 1996 - internet)
2
H01
A.
B.
C.
D.
Branch card for lumped, series R, L, C
Branch cards for Pi-circuits
Branch cards for mutually-coupled R-L elements
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
V.
Branch
A.
B.
C.
D.
E.
F.
G.
H.
I.
J.
K.
VI.
Cards
VII.
Cards
Single-Phase
( Including
Thyristors
Network
Source
Cards
and
Elements
(type-99
branch)
(type-98
branch)
(type-97
branch)
(type-96
branch)
(type-92; "5555")
(type-91; "3333")
(type-92; "4444")
(type-93
branch)
(type-91; "TACS")
(Type-93; FORTRAN)
("CORONA MODEL" )
Diodes )
(Other
than
Rotating
Machinery)
Static electric network source functions
Type-16 simplified equivalent of hvdc converter
VIII.
Dynamic
Synchronous
IX.
Dynamic
Universal
X.
EMTP
Load
XI.
Cards
to
Override
Initial
XII.
Cards
to
Request
Electric
XIII.
Source
XIV.
Batch-Mode
XV.
Request
XVI.
Interactive
A.
B.
C.
Nonlinear
Time, voltage, current-controlled switches
Diode or thyristor (TACS-controlled, type-11)
Spark gap or triac (TACS-controlled, type-12)
TACS-controlled ordinary switch (type-13)
Electric
A.
B.
Model
Pseudo-nonlinear resistance R(i)
Pseudo-nonlinear reactor L(i)
Staircase time-varying resistance R(t)
Pseudo-nonlinear hysteretic reactor L(i)
Exponential ZnO surge arrester R(i)
Piecewise-linear time-vary resistor R(t)
True-nonlinear resistance R(i)
True nonlinear inductance L(i)
Circuit breaker or electric arc R(t,i)
User-supplied FORTRAN for compensation
Corona modeling for cascaded line sections
Switch
A.
B.
C.
D.
to
Flow
Type-1
Machine
Machine
Cards
Cards
for
of
(U.M.;
(for
Definitions
Plotting
(3-phase S.M.;
Conditions
Network
Cards
Cards
Usage)
of
Output
each
Resulting
Statistical
Execution,
Type-19)
"FIX SOURCE"
(for
Type-59)
time
the
Electric
Variables
step )
Simulation
Tabulations
Observation,
and
Control
(SPY)
Initiating EMTP execution that includes SPY
Opportunities for SPY dialogue: the keyboard interrupt
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.
Network
Rulebook ATP (junio 1996 - internet)
D.
E.
XVII.
"JMARTI SETUP"
All
A.
B.
C.
D.
E.
F.
G.
H.
I.
Supporting
Fixed-Dimension
Supporting
---
not yet available
Programs
"XFORMER" to derive [R], [L] of 1-phase transformers
"OBSERVE PARALLEL MONTE CARLO" for parallel "STATISTICS"
"BCTRAN" to derive [R], [L] of multi-phase transformers
"CHANGE SWITCH" to process former switch cards
"OLD TO NEW ZNO" to update pre-"M39." ZnO data cards
"DATA BASE MODULE" to modularize for $INCLUDE arguments
"SATURATION" for magnetic saturation calculations
"HYSTERESIS" to punch Type-96 branch cards
"ZNO FITTER" to punch Type-92 ZnO branch cards
"LINE CONSTANTS"
XXII.
"SEMLYEN SETUP"
XXIII. "CABLE CONSTANTS"
Supporting
Supporting
"NETWORK EQUIVALENT"
XXV.
Associated
XXVI.
Index
of
Introductory
Program
Program
Supporting
XXIV.
©
Program
Supporting Program
XXI.
I.
3
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
Batch-mode execution of SPY commands: $SPY and $SPYEND
Use of SPY "PLOT" instead of separate program "TPLOT"
XVIII. "NODA SETUP"
XIX.
H01
for
Reference
Program
Supporting
"NETEQV"
Material
Alphabetically-Ordered
Information
Program
About
References
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.
Rulebook ATP (junio 1996 - internet)
4
H01
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 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 afterhours, 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
Rulebook ATP (junio 1996 - internet)
H01
5
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 4 th 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:
"- 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
Rulebook ATP (junio 1996 - internet)
6
H01
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 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
Fachhochschule Osnabrueck
Fachbereich Elektrotechnik
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.
Rulebook ATP (junio 1996 - internet)
H01
7
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 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
Rulebook ATP (junio 1996 - internet)
8
H01
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 would use the more
appropriate name
"EMTP Journal."
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
(the former plains server,
which
became a mirror
sparky.nodak.edu
during April of 1995) using
Anonymous FTP
transfers of Internet. These two sites are in the north-central USA (Michigan
Tech in Houghton and North Dakota State University in Fargo, respectively).
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@vm1.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. 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
Rulebook ATP (junio 1996 - internet)
H01
9
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@csos.orst.edu (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
------
.el
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:
.LITERAL
*
Lumped resistance,
R :
*
Lumped inductance,
L :
*
Lumped capacitance,
*
Multiphase Pi-equivalents,
where the preceding scalar
R, L, and C become
symmetric, square matrices
[R], [L], and [C].
*
Multiphase distributed-parameter
transmission lines, wherein propagation
time of the component is represented.
Both constant-parameter and frequencydependent representations are provided.
C :
Rulebook ATP (junio 1996 - internet)
10
*
Nonlinear resistors, where the
v-i characteristic is single-valued.
*
Nonlinear inductors, either with the conventional
single-valued characteristic (see sketch at right)
or including hysteresis and residual flux.
*
Time-varying resistance.
*
Switches, used to simulate circuit
breakers, spark gaps, or any other
connection change of the network.
Diodes and thyristers (ac/dc valves)
are included.
*
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 usersupplied FORTRAN, or via TACS control (see
control system modeling below).
*
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.
*
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 configurationfree. See Section III for details.
H01
.EL
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.
Rulebook ATP (junio 1996 - internet)
H01
11
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 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:
.LITERAL
$emtp
EMTP begins. Send (SPY, file_name, DISK, HELP, GO, KEY) :
SPY
.EL
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"
7) "STOP"
.LITERAL
.el
is for use of
LUNIT5#=#5
data input
(no use of LUNT10 cache).
will terminate execution immediately (FORTRAN STOP).
12
Rulebook ATP (junio 1996 - internet)
H01
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:
.literal
$emtp
EMTP begins. Send (SPY, file_name, DISK, HELP, GO, KEY) :
dc65.
, 0.70
.el
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:
.LITERAL
Send desired disk file name for LUNIT6 :
.el
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.
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
Rulebook ATP (junio 1996 - internet)
H01
13
"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:
.LITERAL
KEY
$OPEN, UNIT=4 FILE=//A/WSM/DC3TO54.PL4 ....(etc.)
REPLOT
144 1. 0.0 20.
18-A 18-B 18-C
.el
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:
.literal
-----------------------------------------------------------------ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ ... etc.
ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/
-----------------------------------------------------------------.el
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
Rulebook ATP (junio 1996 - internet)
14
H01
"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.
.literal
I-D.
$-Cards of "CIMAGE" Can Be Ordered Arbitrarily
------------------------------------------------
.el
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:
.LITERAL
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
.el
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.
.literal
I-D-1.
$OPEN
to connect a disk file to an I/O channel
-----------------------------------------------
.el
$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):
.LITERAL
$OPEN, UNIT=4 FILE=//A/WSM/DC3TO54.PL4 FORM=UNFORMATTED
STATUS=OLD RECL=8000
.el
Rulebook ATP (junio 1996 - internet)
H01
15
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:
.literal
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------Connect disk file to I/O unit.
|$OPEN, UNIT=2 FILE=DC24.
.el
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.
.literal
I-D-2.
$CLOSE
to disconnect a disk file from an I/O channel
-----------------------------------------------------
.el
$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
Rulebook ATP (junio 1996 - internet)
16
H01
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:
.literal
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------Disconnect disk file from I/O unit.
|$CLOSE, UNIT=2 STATUS=K
.el
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
-----------------------------------------
.el
$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:
.literal
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------New KOL132 = 80
(LUNIT6 output width).
|$WIDTH, 80,
{ Req
I-D-4.
$ABORT
to proceed to next data subcase
---------------------------------------
.el
$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:
.literal
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------End data subcase. "CIMAGE" sets KILL = 88.
|$ABORT
{ Illustration
I-D-5.
$DISABLE
$ENABLE
to treat data cards as if they were comment cards
to end such implicit commenting of data cards
-------------------------------------------------------
.el
a
The $DISABLE/ENABLE feature is one trivial, universal feature.
First,
$DISABLE card tells the EMTP to treat all following data cards as if they
Rulebook ATP (junio 1996 - internet)
H01
17
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:
.literal
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
----------------------------------------------------------
.el
$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
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:
.literal
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
----------------------------------------------------------
.el
$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
18
Rulebook ATP (junio 1996 - internet)
H01
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:
.literal
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------Send time to CRT monitor. Card NUMDCD = 5492.
|$MONITOR
{ Request t
.el
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:
.literal
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|---------------------------- Monitor time = 10-Apr-86 14.10.30
|$MONITOR
{ Request t
.el
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.
.LITERAL
I-D-8.
I-D-9.
$LISTOFF to cease outputing interpreted images of input cards
$LISTON
to resume outputing interpreted images of input cards
---------------------------------------------------------------
.el
$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:
.literal
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
.el
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. .literal
I-D-10.
$VINTAGE to choose among alternate data formats
------------------------------------------------
.el
$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.
was drawn from the solution to BENCHMARK DCPRINT-3:
The following
Rulebook ATP (junio 1996 - internet)
H01
19
.literal
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
----------------------------------------
.el
$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: .LITERAL
EMTP begins. Send (SPY, file_name, DISK, HELP, GO, KEY) :
.el
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:
.literal
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
------------------------------------------------
.el
$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:
.literal
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------5602 :BLANK card ending branch cards
.el
Rulebook ATP (junio 1996 - internet)
20
H01
Interpretation of the
$WATCH
request includes confirmation of the
user-specified frequency
"M".
The following is an illustration drawn from
BENCHMARK DC-12:
.literal
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
----------------------------------------------------
.el
$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 means
that comment cards are being
suppressed. The first usage within BENCHMARK DC-3 is interpreted as follows:
.literal
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
------------------------------------------------
.el
$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:
.literal
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
------------------------------------
.el
$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
Rulebook ATP (junio 1996 - internet)
H01
21
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:
.literal
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-16.
$PUNCH
to flush the buffer that holds punched cards
----------------------------------------------------
.el
$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:
.literal
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------Request for flushing of punch buffer.
|$PUNCH, dc13a.pch
.el
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):
.literal
A listing of 80-column card images now being flushed from punch buffer follo
============================================================================
1234567890123456789012345678901234567890123456789012345678901234567890123456
============================================================================
.el
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):
.literal
=========< End of LUNIT7 punched cards as flushed by $PUNCH request >===
.el
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.
.literal
I-D-17.
$ERASE
to initialize the buffer that holds punched cards
---------------------------------------------------------
Rulebook ATP (junio 1996 - internet)
22
H01
.el
$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 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:
.literal
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
---------------------------------------
.el
$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:
.literal
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
----------------------------------------------------------
.el
$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:
.literal
C
1
2
3
4
5
6
7
Rulebook ATP (junio 1996 - internet)
H01
23
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------Data input next from keyboard (until "END").
|$KEY
I-D-20.
$BREAK
to manually trigger a disaster-level SPY interrupt
----------------------------------------------------------
.el
$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:
.literal
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"
-----------------------------------------
.el
$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.
.literal
Ruleboob ATP (junio 1996 - internet)
H01e
1
I.E Computer-Dependent Aspects and Alternatives (General)
The EMTP has been proven compatible with some two dozen distinctly
different computer systems over the years, although at any one time, current
program versions typically will be available only for those
computer systems
that are actively supported by important contacts.
It is machine (computer)
translation of a Universal Transients Program File (UTPF) that makes such
portability possible.
Conceived in
November of 1974 (see Ref. 13), this
procedure utilizes a different Editor/Translator (E/T) program for each
different computer system of interest.
An E/T machine translates the UTPF,
converting it to legal EMTP FORTRAN for the particular installation of interest.
This translation is done by program maintenance and hence should not be of
concern to normal users. Just keep in mind that all EMTP code actually begins
with the same master file (the UTPF), but differs according to the built-in or
specially-requested properties of the translation. The need to update UTPF and
computer specific code regularly can not be stressed enough. With this in mind,
the writing of a common Rule Book for all different computer systems is just a
little tricky.
Numerical precision is a computer-dependent detail about which a good user
should be aware. The precision of INTEGER values is not much of an issue, since
all computers in recent years allow adequate precision for all values of
interest.
Floating-point representation in the form of REAL or COMPLEX
variables is the only realistic concern, then. Today, most computers are byteorganized, and they allow REAL*8 and COMPLEX*16 representations, which provide
about 15 or 16 decimal digits of precision. Problems of numerical roundoff that
once were associated with 36-bit program versions for
word machines such as
Honeywell, DEC PDP-10 and SYSTEM20, and Univac
have largely disappeared.
Either such computers are no longer being used for the EMTP, or program versions
have been converted to use DOUBLE PRECISION, which provides an enormous 72 bits
of
floating-point precision.
The question of COMPLEX is trickier, since not
all vendors allow precision equal to that of DOUBLE PRECISION for this case.
Such is the case with Apollo, which was limited to 32 bits of precision up to
operating system release SR9.7. From version SR10 onwards, also Apollo now has
DOUBLE PRECISION COMPLEX.
Fortunately, it is only the "CABLE CONSTANTS"
calculation that was affected by this shortcoming. So, while most program users
need not be concerned very much with computer precision, they should certainly
be aware of what precision is being used.
Disk file names are not defined by the ANSI FORTRAN 77 standard.
Diskname, pathname, filename and file extension specifications may substantially
vary from one system to the other. There are no general rules. Further, beware
of the fact that some operating systems (e.g. UNIX, Aegis SR10.x) are case
sensitive as far as file naming is of concern. Hence, all program features that
rely on such usage (e.g., the "REPLOT" request, $INCLUDE, $PUNCH, etc.) may vary
from one computer to another.
Most such usage relies upon the FORTRAN
OPEN/CLOSE statement, which may involve further variations, and which may not
even exist in the intended, dynamic sense (e.g. IBM mainframe can only imitate
dynamic opening). Installation-dependent information must be consulted for all
such usage.
Interactive execution, observation, and control ("SPY") is highly
dependent upon the computer system in various ways, beginning with the display
possibilities.
If available, "windows" should be used for display, of course
(see Apollo as an example). The keyboard interrupt will vary from computer to
computer. SPY functions that are based on memory location (e.g., "EXAMINE" or
"DEPOSIT") might have trouble for some computers. Etc.
Ruleboob ATP (junio 1996 - internet)
H01e
2
The environment for actually executing the EMTP depends upon the computer
being used and also, sometimes, upon the mode of usage (thinking of the
difference between "batch mode" and "demand service"). Operating systems will
vary with manufacturer, except for the increasingly popular Unix that now is
available (but not always used) for almost any computer. Hence, no details that
are universal, and applicable to all computers, can be provided.
Yet local
experts should always be able to advise about such matters.
There is another type of difference among program versions that can
profitably be described in general terms, however.
As summarized in Ref. 17,
FORTRAN statements that are highly dependent on computer brand and/or
installation usage have been isolated in installation-dependent EMTP modules,
e.g. batch mode plotting, random numbers, intrinsic functions, ... If a given
organization performs its own translation, such modules might be customized so
as to satisfy its own peculiar needs, and Program Maintenance of that
organization should thoroughly understand the thinking that is responsible for
such changes. But what if an organization receives a FORTRAN copy of the EMTP
from some other group?
In this case, perhaps nothing will be known about
installation-dependent decisions that might be made therein.
In order to be
able to change some of these decisions if need be, the user must know how to
locate the installation-dependent modules of interest. The table of Section IE-1 summarizes such information.
Still another aspect of installation-dependent variation is embodied in
program "start up" files. For Apollo (and most systems that use this concept),
the disk file names are STARTUP and STARTSPY. The idea is simple: rather than
building
installation-dependent
choices
into
the
EMTP
FORTRAN,
such
installation-dependent parameters can be loaded as data at the start of the
computer solution of each the data contained in each disk file.
Details are
provided in Section I-E-2 and I-E-3 (for STARTUP) and Section I-E-4 (for
STARTSPY).
Let us now start with an overview of the installation-dependent EMTP
modules.
I.E.1 Summary of Installation-Dependent EMTP Modules
This description can be skipped by most program users.
It only has
limited importance to those who collaborate in program maintenance, as far as
the UTPF code is available.
The following list summarizes the function of all installation-dependent
EMTP modules. Identification is both by module name and UTPF overlay number, in
the order of appearance within the UTPF. Physical position is really only an
issue for overlaid program versions, of course.
Translators typically will
connect proper system dependent modules during the translation. Then linkageediting will reference a single, extra file of such modules that is applicable
to the computer of interest (e.g., UNIXPCMODS.FOR for AT&T's Unix PC). For a
more detailed description of some of the simpler modules, consult comment
statements of the UTPF (which contains Apollo copies of the modules), or consult
*.RUM files (containing UTPF equivalents of system dependent routines).
Modules of UTPF overlay named "MAIN00" and numbered "-1"
"WINDOW" is used to open the second window for interactive (SPY) dialogue,
and the third window for vector-graphic plotting. All SPY output passes through
this routine as well.
For workstations (e.g., Apollo or Sun) windows are
involved. For other systems, separate terminals could conceivably be used. But
Ruleboob ATP (junio 1996 - internet)
H01e
3
most commonly, systems not providing windows will involve no opening, and SPY
output will simply be sent to LUNIT6 (i.e. the first window).
"TGRUNT" finds the current central processor and input/output job times
using system library functions, C-language calls or assembler calls. Basically,
this is used only for the elapsed-time printout of the case-summary statistics
at the end of a solution. Communication is via the vector FLSTAT of "BLKCOM".
"DATIME" finds the current date and wall-clock time using system library
functions, C-language calls or assembler calls and returns both packed together
as the 19-byte character string "dd-mon-yy hh.mm.ss".
For the date, which
comes first, "dd" and "yy" are two decimal digits for the day within a month,
and the year, respectively. The "mon" are three letters indicating the month:
the first 3 letters of the name, for English.
The following time uses just
digits, for hours, minutes, and seconds since midnight. Automatic PL4 plot file
naming (for those systems having dynamic OPEN/CLOSE capability of FORTRAN) is
based on such text. But of course, users are encouraged to specify a more
meaningfull file name via the $OPEN-command.
"CIMAGE" reads the next data card from I/O unit LUNT10 where all input
card images are stored. The card is decoded as 80A1. There is a check for $cards,
all of which are processed locally within "CIMAGE".
Comment cards
(leading C followed by blank and one text string of maximum 78 characters) are
skipped. Note that, for some computer systems (LUNTEX=LUNT10), also the language
font file BLOCKD51.BIN is stored on the same logical unit. Then, parameter
LIMCRD (i.e. length of the LUNT10-buffer) can cause problems whenever one tries
to load too long input data (or several input data, stacked one after the
other).
"ORIENT" is a module that is referenced only by the text-handling routine
"TFLUSH".
Control actually is transferred only if oriental-language (e.g.,
Japanese or Chinese) text is involved in the language font file BLOCKD51.BIN
(STARTUP file, card 18, first field). Variable JORIEN of the STARTUP file (card
14, variable 8) either enables or prohibits use of the module: If zero, the
module is never called, whereas unity will use the module for both input and
output. For Europeans, this routine is without importance : JORIEN always should
be zero.
"LOCINT" finds the address in memory of the argument, as a number of
INTEGER words (total bytes divided by the length of a program INTEGER in bytes).
This is used by the EMTP to find the size of certain fixed-dimension arrays of
the program (not all code is variably-dimensioned). The memory address can be
found, either using a system library function, a C-language call or an assembler
call.
"RFUNL1" satisfies all library functions of a single, REAL argument using
ENTRY points for the numerous functions of interest.
Neutral names are used
(e.g., "SINZ" is used in place of the usual "SIN" or "DSIN" ). Special limit
checking may be placed in the module, to protect against trouble with the
operating system (e.g. pixel resolution conversion for Apollo).
In addition,
the top of the module, before the first ENTRY point, connects the STARTUP file
(for program initialization in universal SUBROUTINE RSTART). Remark that the
connection to file STARTUP is computer-dependent, whereas reading the STARTUP
file is general (even though the STARTUP file can contain computer dependent
data).
"CEXPZ" satisfies all COMPLEX library functions of a single, COMPLEX input
argument. Using complex numbers is system dependent ; some systems only have
COMPLEX*8, others have COMPLEX*16 too. ENTRY points are used for the second and
later of all such library functions.
Ruleboob ATP (junio 1996 - internet)
H01e
4
"ATAN2Z" satisfies all REAL library functions of two REAL input arguments.
ENTRY points are used for the second and later of all such library functions.
The former module name was the otherwise-unused "RFUNL2".
"CMPLXZ" satisfies all COMPLEX library functions of two REAL input
arguments. ENTRY points are used for the second and later of all such library
functions.
"AIMAGZ" satisfies all REAL library functions of a single COMPLEX input
argument. ENTRY points are used for the second and later of all such library
functions. The former module name was the otherwise-unused "RFUNL3".
"DLIBRF" provides all DOUBLE PRECISION library functions of a single
DOUBLE PRECISION input.
Usage began just for overlay 13, for the Semlyen
recursive convolution code of that overlay.
A SUBROUTINE,
not a FUNCTION
module, is involved (i.e., the output is carried as a second argument).
"DLIBR2" provides all DOUBLE PRECISION library functions of two DOUBLE
PRECISION inputs. Usage is by "SEMLYEN SETUP". A SUBROUTINE, not a FUNCTION
module, is involved (i.e., the output is carried as a third argument).
Modules of UTPF overlay named "ROOT10" and numbered "0"
"TAPSAV" is used to dump and/or restore COMMON blocks of UTPF deck
"LABCOM" between working memory and auxilairy storage. The auxiliary storage is
usually disk, but could be extra RAM.
With virtual memory management, the
programmer may think he is using RAM, but in fact the operating system is using
disk. In any case, the UTPF module assumes that COMMON blocks are stored in RAM
memory in order, and can be transferred by means of a single READ/WRITE
execution based on LOCINT values of the beginning and the end.
The UTPF
contains a module that is correct for DEC VAX/VMS, not for Apollo Aegis (as
would be expected). Apollo is one of several computers that do not order COMMON
blocks regularly. In case of Apollo, the remedy was to produce a fortified
variable-dimensioning program "VARDIM" which in turn produces a "TAPSAV" module
that dumps or restores each common block individually.
"PLTFIL" provides installation-dependent transfer of the output vector to
disk or memory as part of plot-file building. If results go do disk, it is via
I/O channel LUNIT4.
The conversion to single-precision (assuming EMTP
computation uses double this precision) is a common function, in order to save
disk space and I/O time.
Interactive program versions service the ROLLing
"PLOT" command of SPY in this routine, too.
"VECRSV" and "VECISV" provide for the dumping and restoring of isolated
vectors during the steady-state phasor solution and node renumbering of UTPF
overlays 6-11. The first is for REAL vectors, whereas the second is for
INTEGERs.
UTPF (Apollo) code may not be usable by computers with overlaying
because it stores vectors in the working space of UTPF overlay 20 (i.e., in
/C20B01/ of "DECK20").
Modules of UTPF overlay named "OVER1" and numbered "1"
"SYSDEP" performs various system-dependent initializations at the start of
execution of a new EMTP data case, before the first data card is read.
The
former "MIDOV1" can be built in as an ENTRY point if needed (no such use for
Apollo, though). Once a major module, much of the original size was lost when
the concept of the STARTUP file was adopted. File OPEN and CLOSE operations are
the most conspicuous remaining function.
Ruleboob ATP (junio 1996 - internet)
H01e
5
Modules of UTPF overlay named "OVER16" and numbered "16"
"YSERLC" is universal source code, but it is used only by SPY. Since SPY
is computer-dependent, some program versions will not have "YSERLC".
"ANALYT" provides for user-defined sources in case of "ANALYTIC SOURCES
USAGE". Also, the SPY code uses this module to service any "RAMP" requests at
each time step.
Modules of UTPF overlay named "ROOT20" and numbered "28"
This is the only section of source code that can be forwarded to all
program users.
It allows the user to support just any graphical library.
Overlay 20 includes batch-mode EMTP plotting that is accessed by overlay number
NCHAIN = 28.
Although the character mode of such plotting is universal, the
vector-graphic mode is highly dependent upon the plotting interface that is
used. The UTPF contains Apollo modules, which allow both screen plotting (with
reliance upon Apollo Graphics Primitives or GPR) and also Benson plotting.
However, the Benson (or CalComp-like) subroutines are proprietary, and can not
be distributed along with any EMTP version. Such plotting routines must be
acquired and appended at linkage-editing time by the user. In the UTPF module,
dummy ENTRY points for all of the real Benson externals of the previous
paragraph have been added, so that Apollo users without such Benson pen plotters
will have a "clean" BINDing (linkage-editing). If Benson pen plotting is to be
used, such externals must be removed, of course.
Other interfaces have been
developed too: Postscript, HPGL, CalComp, GKS, CGI, GDDM, PLOT10, X-WINDOWS.
Please contact LEC for more details.
"BEGPLT" is called by the principal plotting module "SUBR28" before any
vector-graphic plotting is done, for each data case. Arbitrary system-dependent
initialization is possible.
"ENDPLT" is called by the principal plotting module "SUBR28" after all
plotting of a given data case is completed.
Arbitrary system-dependent
termination (e.g., CalComp buffer flushing) is possible.
"PLOTXX", "NEWPXX", "SYMBXX", "FACTXX", "SCALEX",
"LINEXX", "NUMBXX",
"AXISXX", and "GRIDXX" are vector plotting modules with neutral names; they
provide functions comparable to those of the CalComp plotting modules "PLOT",
"NEWPEN", "SYMBOL", "FACTOR", "SCALE", "LINE", "NUMBER", "AXIS", and "GRID",
respectively. The UTPF modules involve calls to Apollo Graphics Primitives or
GPR, as previously mentioned.
At the bottom is the optional call to Benson
plotting, as verified by Dipl. Ing. Bernd Stein of FGH in Mannheim, West
Germany.
"ADVANZ" exists in the UTPF only because flat-bed plotters that require
the rolling of paper over a stationary bed once were used. It dates to 1979 and
earlier, when such an EAI plotter was used with BPA's CDC-6500 computer. Yet
Apollo has no such usage, and the call to this routine was commented out in the
UTPF during 1988.
Ruleboob ATP (junio 1996 - internet)
H01e
6
Modules of UTPF overlay named "OVER21" and numbered "21"
"FLAGER" is a SPY utility that checks for user-keyed data since the last
such service.
Execution may hibernate within the module until the user sends
new data.
"HONKER" is a SPY utility which issues an audible alarm (i.e., it rings
the bell of the terminal or monitor being used).
"APPEND" services the "APPEND" command of SPY.
It is mostly universal,
but is installation-dependent due to the reliance upon common event flags and
interprocess communication.
"PROMPT" is used to output SPY prompts.
It dumps the 80-byte character
string PROM80 in the SPY window, while holding the position of the cursor (if
possible) ready for a user-keyed response immediately to the right of the
prompt.
In some way, following routines are a duplication of efforts already made
to include batch mode plotting.
Similar, interfacing routines could service
both batch mode as well as SPY plotting. But the efforts made by LEC to reduce
and standardize the number of graphical routines never was accepted by program
development.
"VECPLT" produces vector-graphic plots for the "PLOT" command of SPY. The
Apollo module of the UTPF is installation-dependent because it uses the Apollo
Graphics Primitives to paint the screen. Other translations use GKS, Core, and
X-WINDOW graphics.
"SYMTEK" is called by the immediately-preceding "VECPLT" to output an
identifying symbol at specified coordinates of a vector plot of SPY. For most
systems, the letters "A", "B", etc. are used to so identify curves, for
simplicity.
"CHRSIZ" is called by the preceding "VECPLT" to change the size of
subsequent character output on a vector plot. It is not used for Apollo, but
certainly would be for Tektronix PLOT10.
"TGRID" is called by the preceding "VECPLT" to apply a rectangular grid to
a vector plot of SPY.
I.E.2 STARTUP Disk File for Program Initialization
The disk file that will be used by all computer systems to initialize
installation-dependent variables at the beginning of a solution of a new data
case is the STARTUP file.
Possibly the name will be different for some
computers or installations, since the installation-dependent FUNCTION RFUNL1
connects this. In any case, a representative sample of STARTUP for Apollo is
shown immediately below.
Ruleboob ATP (junio 1996 - internet)
H01e
7
1 RHIGH EPSZNO EPWARN EPSTOP EPSUBA EPDGEL EPOMEG
SZPLT
SZBED TENFAC
1.D+10
1.D-8
1.D-3
0.1
100. 1.D-16 1.D-15
10.0
72.0
10.
2 SIGMAX TENERG DEGMIN DEGMAX ZNOLIM(1), (2) STATFR ZNVREF XMAXMX
AINCR
4.0 1.D+20
0.0
360.
1.0
1.5
60.0
1.E-6
2.0
.05
3 FREQFR HLETT1 Unused
VHS
VS
VH TAXISL VAXISL
FILL1
FILL2
60.
.12
8.0
1.0
10.
5.0
4.0
1.0
1.0
4 TOLRCE
FHTAX
FXSUP
FYSUP
FXTIT
FYTIT VPLOTS VPLOTL VPLOTH FTCARR
8.E-5
0.5
0.3
-0.03
0.10
0.15
1.0
5.0
6.0
1.0
5 FXNUMV FXNUMH FVAXTT FXVERT TIMULT TIMTAC OVRLAP FLZERO EPSILN FLTINF
1.5
5.0
-7.5
0.0
1.0
0.0
0.0 1.D-12
1.D-8 1.D+19
6 XHEADM YHEADM HGTHDM XCASTI YCASTI HGTCST XLEGND YLEGND HGTLGN PIXPUN
2.5
8.75
0.2
0.5
8.0
.12
0.5
1.75
.12
80
7 XALPHA YALPHA HGTALF D4FACT PEKEXP EPSLRT EPSPIV PLMARK FACOSC
1.5
0.0
.12
1.0
43. 1.E-12 1.E-16
1.0
0.3
8 NMAUTO INTINF KOL132 MUNIT5 MAXZNO IPRSPY IPRSUP
LNPIN MINHAR MAXHAR
1 9999999
132
5
50
0
0
6
0
9
9 NFORS2 NIOMAX
MRGN LINLIM
MPAGE MODE28 KPGRID KPEN(1) KPEN(2) KPEN(3)
10
10
2
100
0
1
0
1
1
1
10 ..(4) KOMLEV
NSMTH MODSCR KOLALP MAXFLG LIMCRD LCHSUP LCHTIT LCHXAX
1
-1
50
2
5
1
4000
1
2
0
1 LCHYAX NXINCH NYINCH
NXOFF
NYOFF NSMPLT KOLWID KOLSEP JCOLU1 KSLOWR
0
74
68
100
40
50
11
1
0
5
2 KSYMBL NOBACK KOLEXM
LTEK
NCUT1
NCUT2 INCHPX INCHPY LCHFIL LCHLIM
200
1
60
1
1
1
2
2
0
0
13 NXID6
NYID6 MAXSYM
IHS LIMCOL
KLEVL
KEXTR
NXMAX
NYMAX
IZGR1
10
330
3
3
79
0
0
511
430
0
14 IZGR2
LTIC NXVERN
LRLIM KASEND LUNDAT KTRPL4 JORIEN LIMPNL LUNTEX
0
7
30
75
5
3
0
0
200
11
5 KINSEN LISTON LIMTAC NOCALC MFLUSH L4BYTE KOMPAR
1
0
25
0
1000
0
1
6 LUNIT1 LUNIT2 LUNIT3 LUNIT4 LUNIT5 LUNIT6 LUNIT7 LUNIT8 LUNIT9 LUNT10
1
2
3
-4
5
6
7
8
9
10
17 KS(1)
KS(2)
KS(3)
KS(4)
KP(1)
KP(2)
KP(3)
KP(4)
1
1
502
500
1
513
502
500
18 Name of language text file ] Window] SPY @K file name ] Central Monte file]
/wsm/blockd51.bin
junk
inclspy .dat
//b/wsm/parallel.lis
9 SSONLY CHEFLD TEXNAM CHVBAR BRANCH TXCOPY USERID -TRASH -TERRA CHRCOM
PHASOR E
DUM
|
NAME
COPY
WSMTHL ...... TERRA
C {}$, 0
DATTYP LISTYP PCHTYP PL4TYP EFIELD FMTPL4 -BLANK
.dat
.lis
.pch
.pl4
10E8.0
Remark that each data card with meaningful numbers is (and must always be)
preceded by a comment card, upon which the card number and variable names can
conveniently be remembered. There are a total of 20 cards, beginning with seven
cards of floating-point values (read as 10E8.0 data), followed by ten cards of
integers (cards 8-17, read as 10I8 data), followed by one card of variablelength text, terminated by two cards of ALPHANUMERIC text (A6 names).
Before giving a short description of the meaning of all parameters of the
STARTUP file, one key item should be clear to all users: the meaning of the
variables can (and will be) highly computer/system dependent.
This is
especially true for those parameters that are related to graphics (be it batch
mode or SPY plotting). But also file names and file extensions might depend on
the operating system being used.
Regardless of what definitions may follow in words on the pages to follow,
the computer code will do what it wants. The screen pixel values provide a good
example.
When the STARTUP file first was conceived, Apollo had a single
standard, monochrome, resolution of 800 by 1024 pixels. Then, during late 1986,
Ruleboob ATP (junio 1996 - internet)
H01e
8
the new DN3000 offered a higher resolution of 1024 by 1280 pixels. Many Apollo
networks (including LEC's) involve mixtures of such hardware. Rather than have
two different STARTUP files (which would be logical, cfr. EGA, VGA on PC386), it
was decided during October of 1988 that Apollo users would continue to use the
old pixel values in the STARTUP file, but that installation-dependent code of
"RFUNL1" would modify these "appropriately" should a high-resolution monitor be
installed.
This might not be the optimal solution (it even could lead to
confusion), but this is the way program maintenance tried to get rid of pixel
problems.
Another example is for the GEOGRAF software used with the MS-DOS
version: all pixel values are ignored since a CalComp-compatible interface is
used for all vector-graphics.
To conclude, any specific computer can easily
modify or ignore pixel-related data. At the same time it is agreed that this
might not be transparant to the users.
Furthermore, the STARTUP file is continuously extended. The most serious
drawback of this growth is that parameters for different applications are mixed.
To circumvent this drawback from the user's point of view, section I-E-3 will
list all relevant parameters, ordered per topic of interest (e.g. batch mode
plotting, SPY plotting, tolerances, STATISTICS, etc.).
Anyway, let us discuss the data cards one by one now.
Card 1. 1st Miscellaneous Floating-point Numbers
-------------------------------------------------------------------------------1 RHIGH EPSZNO EPWARN EPSTOP EPSUBA EPDGEL EPOMEG
SZPLT
SZBED TENFAC
1.D+10
1.D-8
1.D-3
0.1
100. 1.D-16 1.D-15
10.0
72.0
10.
-------------------------------------------------------------------------------Parameters:
RHIGH: a near-infinite value of resistance. The program may add such resistance
internally, for reasons of connectivity (e.g., in parallel with the Type-99
pseudo-nonlinear resistance element).
It should be low enough so as to be
legal, yet high enough so that no numerical problems (e.g., overflow) result.
The reciprocal of 100 times FLZERO (see card 5, variable 8) is commonly used.
EPSZNO: Convergence tolerance for the Newton ZnO iteration.
This is just a
default value. It can be redefined by a "ZINC OXIDE" request (see section II-A39).
EPWARN: Nonfatal warning tolerance .. Newton ZnO iteration.
This is just a
default value. It can be redefined by a "ZINC OXIDE" request (see section II-A39).
EPSTOP: Fatal error tolerance for the Newton ZnO iteration. This is just a
default value. It can be redefined by a "ZINC OXIDE" request (see section II-A39).
EPSUBA: Normalized damping index Rp/(2*L/DT) for the Type-59 S.M. This is just
a default value. It can possibly be redefined by a Class 2 S.M. "TOLERANCES"
request of Chapter VIII.
EPDGEL: Warning convergence tolerance for the Type-59 S.M.
This is just a
default value.
It can possibly be redefined by a Class 2 S.M. "TOLERANCES"
request of Chapter VIII.
EPOMEG: Fatal error tolerance for the Type-59 S.M.
This is just a default
value. It can possibly be redefined by a Class 2 S.M. "TOLERANCES" request of
Chapter VIII.
Ruleboob ATP (junio 1996 - internet)
H01e
9
SZPLT: height of the plotter paper, in [inches], for the batch-mode vector
plotting.
This is the parameter that can be changed by means of a "PLOTTER
PAPER HEIGHT" request (see Chapter XIV).
SZBED: the limiting plot length in [inches], for the batch-mode vector plotting.
This was originally used for flat-bed plotters (mnemonically, "size of bed"),
which had a clear maximum.
It now can be used to place graphs in a more
economical way above or next to a previous plot (see Chapter XIV).
TENFAC: a temporary variable that is used to multiply FLZERO (see number 8 on
card 5), to produce a larger near-zero tolerance TENFLZ. Naming comes from the
fact that the fixed value 10.0 was used for this factor at one time.
Ruleboob ATP (junio 1996 - internet)
H01e
10
Card 2. 2nd Miscellaneous Floating-point Numbers
-------------------------------------------------------------------------------2 SIGMAX TENERG DEGMIN DEGMAX ZNOLIM(1), (2) STATFR ZNVREF XMAXMX
AINCR
4.0 1.D+20
0.0
360.
1.0
1.5
60.0
1.E-6
2.0
.05
-------------------------------------------------------------------------------Parameters:
SIGMAX: Indirect measure for the probability for negative switch opening/closing
times for STATISTICAL switches following a Gaussian (not uniform) distribution
law (see section VI.B.1). For Gaussian distributions, SIGMAX*σ is the point at
which the "tails" of the distribution will be truncated, for purposes of
calculating the random switching times.
The value of 4.0 has been used for
years without complaint.
Then, the probability for negative switch
opening/closing times is smaller than 0.005%.
TENERG: the time (in seconds) for table dumping of Monte Carlo simulations.
* Why table dumping ? Recall that by definition, results for every energization
are identical, up to the moment of the first random event. Hence, in order to
speed up calculations for each energization, it would be a good idea to store
the deterministic situation that exists prior to the first random event.
Because of the probabilistic nature of a Monte Carlo simulation, the exact
moment of the first random event is not known a priori.
But based on
statistical theory, the probability is very low (<0.005%) to have any switching
action
4σ
before
the
average
value
of
the
smallest
average
switch
opening/closing time.
* Valid time specifications:
- a time, expressed in seconds.
Such specification is not recommended, for
reasons explained before (one cannot be sure to start from the same,
deterministic situation for each successive energization).
- a very large positive value (e.g. 1.D+20). This is a flag used by the program
to set the moment of table dumping equal to a value 4σ before the average value
of the smallest average switch opening/closing time.
This option is
recommended, since it will avoid repetitive resimulation of the previous
deterministic solution for each successive energization.
- a very large negative value (e.g. -1.E10), not zero, will make sure that table
dumping takes place at time zero. This will be time consuming because the full
deterministic case will be calculated repeatedly (i.e. for each successive
energization).
DEGMIN, DEGMAX: parameters defining the time window that describes extra random
delay for STATISTIC switches (see section VI.B). Recall that such extra random
delay follows a uniform distribution rather than a Gaussian distribution. This
extra random delay is not expressed in the usual units of time (e.g. seconds),
but rather in degrees based on the synchronous power frequency STATFR (cfr. 7th
parameter on this card). DEGMIN is the beginning angle, whereas DEGMAX is the
ending angle to define the time window. It is integer miscellaneous STATISTICS
data parameter ITEXT (see section II.C) that decides whether this extra random
delay should be applied to none, to all, or only to the closing or only to the
opening STATISTICAL switches.
ZNOLIM(1) and ZNOLIM(2): parameters that control Newton ZnO iterations.
Both
values can be specified either via the STARTUP file, or via the special "ZINC
OXIDE" request (see section II-A-39).
STATFR: the default synchronous power frequency in [Hertz]. This is the
parameter that can be changed by means of a "POWER FREQUENCY" request (see
Ruleboob ATP (junio 1996 - internet)
H01e
11
section II-A-27).
Note that a STARTUP file from North America will normally
contain a value of 60 Hz, but that many in the world will want to change this to
50 Hz. STATFR is important for branch cards (XOPT and COPT - see chapter VI),
for synchronous machine modelling (chapter VIII), but also for STATISTICAL
studies (e.g. DEGMIN and DEGMAX - section VI-B).
ZNVREF: an indication for the FORTRAN COMPLEX precision that is used by "CABLE
CONSTANTS". If there is full precision (generally 64 bits), set this value to
zero. Such is the case for IBM, VAX, Apollo SR10.x and most other computers.
But for reduced precision (the case for Apollo SR9.7 which has only singleprecision COMPLEX), the value is interpreted as a reachable tolerance.
XMAXMX: a per unit value that is expected to limit all variables that are to be
tabulated statistically at the conclusion of a "STATISTICS" or "SYSTEMATIC"
simulation.
XMAXMX can also be set using the STATISTICS DATA-request (see
section XV-A). The base value to which the per unit values of the STATISTICS of
SYSTEMATIC output are referred to, can be specified using a special request
card. This is explained in section XV-B (parameter "BASE" - cols. 3-10. For
the original case of voltage tabulations, a value of 2.0 has been used
satisfactorily for years.
Actually, there is an additional, hidden factor of
safety equal to five. But for current, power or energy, per unit values may be
much less predictable, so extra care might be required. In any case, XMAXMX is
used only to reserve storage for the tabulation; it does not otherwise affect
results.
AINCR: the per unit compartment size or per unit voltage increment used for
statistical tabulations that conclude a "STATISTICS" or "SYSTEMATIC" simulation
(think of it as the resolution of a bar chart). AINCR can also be set using the
STATISTICS DATA -request (see section XV-A). The base value to which the per
unit values of the STATISTICS of SYSTEMATIC output are referred to, can be
specified using a special request card.
This is explained in section XV-B
(parameter "BASE" - cols. 3-12).
Card 3. Frequency, batch mode plotting and SPY plotting floating point numbers
-------------------------------------------------------------------------------3 FREQFR HLETT1 Unused
VHS
VS
VH TAXISL VAXISL
FILL1
FILL2
60.
.12
8.0
1.0
10.
5.0
4.0
1.0
1.0
-------------------------------------------------------------------------------Parameters:
FREQFR: the old (last-used) fundamental frequency of the interactive Fourier
series calculation.
For usage, see the "FOURIER" subcommand of the "PLOT"
command of SPY (chapter XVI). Normally this value will be identical to that of
STATFR (card number 2).
HLETT1: the height of vector graphics batch-mode lettering for the table of
curve numbers and symbols on the right edge of the plot.
Beside each curve
number and symbol is a sample horizontal line.
Unused: Formerly HLETT2, the height of vector graphics batch-mode plot lettering
for the 16-character super title only. It is variable HGTHDM on Card 6 that
now carries this information.
VHS: the height of the vertical axis for vector graphics (batch mode plotting).
VS: the height of the lower end of the vertical axis for vector graphics (batch
mode plotting).
Ruleboob ATP (junio 1996 - internet)
H01e
12
VH: the height of the plot paper being used for vector graphics (batch mode
plotting).
TAXISL: the length of the horizontal axis as used for both vector and character
graphs (SPY plotting). The value "5.0" is five inches, as used with the halfwidth Apollo plot window (see pixel specifications KP(1) through KP(4) on card
number 17).
VAXISL: half of the length of the vertical axis, as used for vector-graphics
(SPY plotting).
The value "4.0" is used with the 2/3-rds height Apollo plot
window (see pixel specifications KP(1) through KP(4) on card number 17).
FILL1: This parameter is related to SPY vector-graphic plotting. It further is
computer-dependent :
a) on Apollo : the fill-in or visibility factor of the first of two
possible superimposed grids of SPY vector-graphic plotting. Grids are in fact
drawn with dashed lines, and this is the fraction of drawing (as opposed to
spacing). Unity gives a solid grid, which is usually good enough for at least
one of the grids. If two grids are used (so horizontal and vertical lines every
half unit, for more accuracy), then one may be dashed for distinguishability.
Related parameters are: IZGR1 (card 13) and NCUT1 (card 12).
b) on Salford : Color of SPY "PLOT" axes and their numbers. The floatingpoint number will be moved to an INTEGER variable prior to its use, so FILL1
should be an integer (e.g. : "13.").
FILL2: This parameter is related to SPY vector-graphic plotting. It further is
computer-dependent :
a) on Apollo : the fill-in or visibility factor of the second of two
possible superimposed grids of SPY vector-graphic plotting.
See FILL1 for
possible values. Related parameters are: IZGR2 (card 14) and NCUT2 (card 12).
b) on Salford : Color of SPY "PLOT" legend, which begins with the text
"Graph Number", followed by date and time, etc. The floating-point number will
be moved to an INTEGER variable prior to its use, so FILL2 should be an integer
(e.g. : "13.")
Ruleboob ATP (junio 1996 - internet)
H01e
13
Card 4. SPY "PLOT" Controls (Floating Point)
-------------------------------------------------------------------------------4 TOLRCE
FHTAX
FXSUP
FYSUP
FXTIT
FYTIT VPLOTS VPLOTL VPLOTH FTCARR
8.E-5
0.5
0.3
-0.03
0.10
0.15
1.0
5.0
6.0
1.0
--------------------------------------------------------------------------------
Parameters:
TOLRCE: the square of the maximum distance that a point can depart from a curve
and yet still be discarded (in order to speed plotting and minimize storage)
(SPY plotting). A value of zero or blank means that all points will be plotted
(i.e., none will be discarded).
FHTAX: the fractional height to place the horizontal axis (SPY plotting), should
there be no zero level for natural placement of the horizontal axis.
The
fraction is expressed in terms of the vertical-axis height, so that zero will
place the horizontal axis at the bottom of the vertical axis, whereas unity will
place it at the top of the vertical axis.
FXSUP: the fractional horizontal offset for the start of the single-line super
title (SPY plotting). The fraction is expressed in terms of the horizontal-axis
length, so that zero will begin the super title at the left end of the
horizontal axis, whereas unity (never used) would place it off the right side,
beginning at the right edge of the horizontal axis.
FYSUP: the fractional vertical offset for the start of the single-line super
title (SPY plotting). The fraction is expressed in terms of the vertical-axis
length, so that zero will place the super title at one end of the Y-axis,
whereas unity would place it at the other. Note that "one" and "the other" are
used rather than "bottom" and "top," due to the inverted pixel addressing of
some computers. This is the case with Apollo, for which the "-0.03" value will
place the line just above the top edge of the Y-axis.
FXTIT: the fractional horizontal offset for the start of the multi-line case
title (SPY plotting). The fraction is expressed in terms of the horizontal-axis
length, so that zero will begin the case title at the left end of the horizontal
axis, whereas unity (never used) would place it off the right side, beginning at
the right edge of the horizontal axis.
FYTIT: the fractional vertical offset for the start of line one of the multiline case (SPY plotting). The fraction is expressed in terms of the verticalaxis length, so that zero will place the super title at one end of the Y-axis,
whereas unity would place it at the other. Note that "one" and "the other" are
used rather than "bottom" and "top," due to the inverted pixel addressing of
some computers. This is the case with Apollo, for which the ".15" value will
begin the case title at a fraction equal to 15/100-ths of the height of the Yaxis below the top edge of the Y-axis.
VPLOTS: the vertical position of the lower end of the Y-axis of a vector plot,
expressed in inches (SPY plotting).
VPLOTL: the span or length of the vertical axis, expressed in inches (SPY
plotting).
VPLOTH: the vertical position of the top end of the vertical axis, expressed in
inches (SPY plotting).
Note: VPLOTS + VPLOTL = VPLOTH.
Ruleboob ATP (junio 1996 - internet)
H01e
14
FTCARR: the factor controlling vertical, interline spacing of text in case of a
vector plot created using the SPY "PLOT" feature. The vertical pixels of one
line are displaced from those of the next line by FTCARR times the height of the
letters.
Hence a value of unity provides no extra space (single spacing),
whereas the value 2.0 would provide double spacing.
Card 5. More SPY "PLOT" Controls, and Miscellaneous (Floating Point)
-------------------------------------------------------------------------------5 FXNUMV FXNUMH FVAXTT FXVERT TIMULT TIMTAC OVRLAP FLZERO EPSILN FLTINF
1.5
5.0
-7.5
0.0
1.0
0.0
0.0 1.D-12
1.D-8 1.D+19
-------------------------------------------------------------------------------Parameters:
FXNUMV: the factor controlling vertical positioning of the numbering on the
horizontal axis of a vector plot (SPY plotting).
This multiplies the letter
height in pixels to provide an offset from the horizontal axis. Due to possible
inversion of vertical pixel counting, the sign may depend on the computer system
(see FYSUP, card number 4).
But the magnitude is clear: larger FXNUMV means
further vertical separation from the horizontal axis, at a rate of one line for
every change in value of unity.
FXNUMH: the factor controlling horizontal positioning of the numbering on the
horizontal axis of a vector plot (SPY plotting). This multiplies the letter
width in pixels to provide an offset from the left edge of the horizontal axis.
By changing this value by unity, the numbering will shift either left (if
negative) or right (if positive) one character position.
FVAXTT: the factor controlling horizontal positioning of the vertical axis label
of a vector plot (SPY plotting). This multiplies the letter width in pixels to
provide a horizontal offset from the vertical axis. By changing this value by
unity, the numbering will shift either left (if negative) or right (if positive)
one character position.
FXVERT: the factor controlling the horizontal positioning of the vertical axis
of a vector plot (SPY plotting). If zero, the vertical axis will obtain its
normal horizontal positioning.
If nonzero, the user is forcing horizontal
placement of the vertical axis. There is a linear variation between the left
edge of the horizontal axis and the right edge, as this control varies from zero
to unity. The value 0.5 will place the vertical axis right in the middle of the
horizontal span.
Ruleboob ATP (junio 1996 - internet)
H01e
15
TIMULT: the scaling factor associated with the time units specifier IHS (SPY
plotting). Here IHS is the integer code for user-selected time units (see card
13). The code and the scaling factor must correspond, of course.
Possible values are:
IHS
1
2
3
4
5
6
7
TIMULT
360*FPOWER
FPOWER
1.
1.E3
1.E6
1.
1.
8
1.
Meaning
degrees, based on power frequency
cycles, based on power frequency
seconds
milliseconds
microseconds
Hertz (linear scale)
log to the base of 10 of Hertz
(semilogarithmic scale)
log to the base of 10 of Hertz
(double-logarithmic scale)
TIMTAC: a default value for the time (in units of seconds) before which all TACS
warning messages will be suppressed. A value of zero means no such suppression
will occur, of course.
One can change the initial value being defined here,
using the "TACS WARN LIMIT" request (see section II-A-35). For a limit on the
number of printed messages, see LIMTAC on card 15.
OVRLAP: the fractional overlap of the time axis, between the old plot that is
ending and the next plot that is just beginning, for "ROLLV" usage (rolling
vector plot) within the "PLOT" command of SPY. A value of zero means that there
will be no overlap, whereas unity would mean complete overlap (the absurd case
where no progress at all is made).
A value of one half would mean that the
right half of the old plot would be reproduced in the left half of the new plot
before rolling continued, when a new page was called for.
FLZERO: a near-zero tolerance that allows room for lots of roundoff during
counting and arithmetic. For 64-bit computation, the value 1.D-12 has been used
successfully for years, even though the choice is highly conservative (there
really is more precision).
EPSILN: the default value for the matrix singularity tolerance (see section IVA).
This value can later be modified by a nonblank field (EPSILN) of the
floating-point miscellaneous data card (cols. 17-24), or by a "$NEW EPSILN" card
(see section I-D-6).
FLTINF: A very large floating point number. Since certain calculations may
internally use this value, which may subsequently be squared, this commonly is
set close to the square root of the largest floating point number that can be
represented. Because it is useful for all computers to employ the same value,
the minimum floating-point limit of a little over 1.E+38, which applies to DEC
VAX-11 computers, is commonly used. The square root of this, 1.E+19, is still
so big as to appear infinite for just about any computation of engineering
significance.
Ruleboob ATP (junio 1996 - internet)
H01e
16
Card 6.
1st batch mode vector Graph Controls (Floating Point)
(see chapter XIV for more details)
-------------------------------------------------------------------------------6 XHEADM YHEADM HGTHDM XCASTI YCASTI HGTCST XLEGND YLEGND HGTLGN PIXPUN
2.5
8.75
0.2
0.5
8.0
.12
0.5
1.75
.12
80
-------------------------------------------------------------------------------Parameters:
XHEADM: the "X" coordinate where the 16-character graph heading label of a
vector graphics plot is to begin. This defines the left edge.
YHEADM: the "Y" coordinate where the 16-character graph heading label of a
vector graphics plot is to begin. This defines the bottom of the single-line
heading.
HGTHDM: the height of lettering to be used for the 16-character graph heading
label of a vector graphics plot.
XCASTI: the "X" coordinate where the 78-character case title line of a vector
graphics plot is to begin. This defines the left edge.
YCASTI: the "Y" coordinate where the 78-character case title line of a vector
graphics plot is to begin. This defines the bottom of the single-line heading.
HGTCST: the height of lettering to be used for the 78-character case title line
of a vector graphics plot.
XLEGND:
the
"X"
coordinate
where
the
plot
legend
(6-character
user
identification, date, time, plot variables) of a vector graphics plot is to
begin. This defines the left edge. Usually the plot legend is placed at the
bottom of the plot, toward the left.
YLEGND: the "Y" coordinate where the plot legend of a vector graphics plot is to
begin. This defines the bottom of the first of several lines.
HGTLGN: the height of lettering to be used for the plot legend.
PIXPUN: the number of screen pixels per unit length for batch-mode screen
plotting ("CALCOMP PLOT" sent to the screen). Although not exact for most CRT
screens, the same figure is used for both horizontal and vertical dimensions.
This value is of no importance for real plotter output.
Card 7.
2nd
batch
mode
vector
Graph
Controls
tolerances(Floating Point)
(see chapter XIV for more details on vector graphs)
and
miscellaneous
-------------------------------------------------------------------------------7 XALPHA YALPHA HGTALF D4FACT PEKEXP EPSLRT EPSPIV PLMARK FACOSC
1.5
0.0
.12
1.0
43. 1.E-12 1.E-16
1.0
0.3
-------------------------------------------------------------------------------Parameters:
XALPHA: the "X" coordinate where the multi-line subheading text of a vector
graphics plot is to begin.
This defines the left edge of the 78-character
lines.
Ruleboob ATP (junio 1996 - internet)
H01e
17
YALPHA: the "Y" coordinate where the multi-line subheading text of a vector
graphics plot is to begin. This defines the bottom of the first (the top) line
of such a multi-line subheading.
HGTALF: the height of lettering to be used for the multi-line subheading of a
vector graphics plot.
D4FACT: This parameter is system dependent, but is related to batch mode vector
graphics :
a) On most computer systems : the initial value of the batch-mode vector
graphics
magnification factor. A value of unity means full size. Later, this
value could be altered by a "SCALE" request (key word of columns 3-7) during
batch-mode plotting (see chapter XIV).
Variable D4FACT originally was the
argument of the CalComp routine "FACTOR", so it is the reciprocal of variable SS
of the "SCALE" request (see chapter XIV).
b) On Salford : Any positive value indicates a delay time (in seconds) that each
batch-mode (CalComp) plot is held on the screen once it is completed. If
negative, the program will wait for a <CR> before erasing the screen and
switching to text mode for the reading the next plot cards. In case of batch
file running, usage of a negative D4FACT should be avoided, it should be noted ;
in a batch file, one redirects standard input, hence <CR> no longer can be
activated.
PEKEXP: the largest argument used with the library function "CEXPZ" (complex
exponential). This is not a limitation of the library function, but rather of
the usage within the "CABLE CONSTANTS" code.
First, take the largest number
that the computer can represent (about 10**38 for Apollo) using COMPLEX. Next,
if division by a complex number requires the squaring of it (as seems to be the
case for Apollo), take the square root of this: about 10**19 for Apollo.
Finally, PEKEXP is the natural logarithm of the result.
EPSLRT: the convergence tolerance ("epsiln") of the LR-transform ("LRT") that is
used to calculate eigenvalues within the "LINE CONSTANTS" code.
For maximum
precision of the eigenvalue calculation, EPSLRT should be set to the precision
limit of the floating-point variables being used. For 64-bit computation, this
is about 16 digits, of course. There is no problem with being too close to the
precision limit, since any positive tolerance can be met (the LR algorithm seems
to drive the subdiagonal elements arbitrarily close to zero).
On the other
hand, using a value smaller than the precision limit of the computer would seem
to add numerical effort, but with no improvement in the accuracy of the
resultant eigenvalues. Hence it is not recommended to use a value smaller than
the precision limit of the computer.
See also related parameter LRLIM (card
14).
EPSPIV: the minimum pivoting tolerance of the "LINE CONSTANTS" code.
This is
used only for for the eigenvector calculation, which results in the modal
transformation matrix [Ti].
PLMARK: the multiple of a default value for the number of symbols that will be
used to mark each batch mode vector graphics curve.
The value unity is a request for the default number of markings, which
corresponds to one symbol each unit (each inch in the U.S.A. and Belgium) before
the discarding of data points that are not significant (see "smoothing" of
variables - chapter XIV).
Two would give twice the default number, and half would give about half, or none
if the number would be less than unity (because of INTEGER truncation).
Hence any very small value for PLMARK (e.g., 1.E-8) is guaranteed to suppress
all curve marking.
Ruleboob ATP (junio 1996 - internet)
H01e
18
FACOSC: the scaling factor for corrections of the Newton iteration of coupled
nonlinear elements if there is oscillation. To disable all such scaling, make
this non-positive.
Card 8. 1st Miscellaneous Integers
-------------------------------------------------------------------------------8 NMAUTO INTINF KOL132 MUNIT5 MAXZNO IPRSPY IPRSUP
LNPIN MINHAR MAXHAR
1 9999999
132
5
50
0
0
6
0
9
-------------------------------------------------------------------------------Parameters:
NMAUTO: the binary flag that controls automatic branch/switch naming (default
names such as "LIN001", etc. - see section II-A-41 for the AUTO NAME request).
Root names for any such naming come from the language text file (usually
referred to as BLOCKD51.BIN - see card 18), so they could be language-dependent.
Setting NMAUTO to unity means that there will be such names automatically.
Careful with NMAUTO = 1, however. It could lead to a PL4 file header which is
too long (i.e. too much node names) for TPPLOT or PCPLOT !
Change NMAUTO to zero if no such default branch/switch names are desired.
Note: 1.
Why branch naming ?
It avoids problems related to the unique reference to a particular branch
in case of parallel branches or switches.
2. How to perform branch naming ?
Branch naming can be done manually (via the BRANCH NAME request-see DC4)
or interactively (via SPY).
INTINF: the largest integer that can ever be used by the program for indexing.
For machines using INTEGER*4, the artificially reduced limit that is one short
of 10**7 is used for convenience.
Since this value is sometimes assigned
internally as a flag, and can then be sent to LUNIT6 (particularly as part of
DIAGNOSTIC printout), excessive values that might overflow output formats should
be avoided.
KOL132: the LUNIT6 output column width.
Popular choices are 80 and 132.
Although the time-step loop output can be any width, many other structures only
have these two standard choices. Hence it is recommended that the user sticks
to these.
MUNIT5: the I/O channel number for "EMTSPY" input. The value "5" means that SPY
dialogue begins with the keyboard for input (at least on Apollo). Also refer to
card number 16, containing other I/O channel numbers.
MAXZNO: default value for the maximum number of Newton iterations that are used
to solve coupled ZnO elements. This may be redefined by means of a "ZINC OXIDE"
request (columns 17-24) - see section II-A-39.
IPRSPY: initial value for diagnostic output associated with SPY. It is advised
to make IPRSPY nonzero, only if there is trouble very early in execution, before
the first data card is read (in order to avoid too much output).
The IPRSPY
flag is mainly a control for program developers and repairers, not for
production users.
IPRSUP: initial value for conventional (non-SPY) diagnostic output.
It is
advised to make IPRSUP nonzero, only if there is trouble very early in
execution, before the first data card is read (in order to avoid too much
Ruleboob ATP (junio 1996 - internet)
H01e
19
output).
The IPRSUP flag is mainly a control for program developers and
repairers, not for production users.
Production users are advised to use
DIAGNOSTIC (section II-A-12), $DEBUG (section I-D-14), or simply to send in
well-illustrated problem cases to LEC or program development.
LNPIN: default setting for the number of lines per inch for LUNIT6 character
("PRINTER PLOT") plots.
MINHAR: the beginning harmonic of a bar chart that displays the results of
Fourier analysis. This is for the "FOURIER" subcommand of the "PLOT" command of
"SPY". To ignore nothing, a value zero (for "dc") is used. The keyed value is
just a starting value, which can be changed interactively at the time of usage.
MAXHAR: the ending harmonic of a bar chart that displays the results of Fourier
analysis. Etc. as for MINHAR.
Card 9. 2nd Miscellaneous Integers
-------------------------------------------------------------------------------9 NFORS2 NIOMAX
MRGN LINLIM
MPAGE MODE28 KPGRID KPEN(1) KPEN(2) KPEN(3)
10
10
2
100
0
1
0
1
1
1
-------------------------------------------------------------------------------Parameters:
NFORS2: the number of rows of the Fourier series table that will be printed.
Each harmonic occupies one row. Etc. as for MINHAR
NIOMAX: default limit for rotor speed iterations of the Type-59 S.M.
This
default value can be redefined by a Class-2 S.M. "TOLERANCES" request (chapter
VIII).
MRGN: the margin of blank space separating vector graphics plots in the case of
paper (not screen) destination (batch mode plotting).
LINLIM: the line limit for batch-mode "PRINTER PLOT" graphs. In the absence of
such protection, users have been known to waste incredible quantities of paper
due to errors of scaling.
MPAGE: the binary flag that indicates whether the user wants each batch-mode
character plot ("PRINTER PLOT") to begin on a new page, following usage of the
"1H1" carriage control.
A value of unity will begin each such plot on a new
page, whereas zero will bypass such special treatment.
MODE28: an integer that chooses the starting mode of batch-mode plotting.
choices are:
1) CALCOMP PLOT;
2) PRINTER PLOT;
3) CALCOMP PRINTER.
Also refer to NOCALC (card 15) and MODSCR (card 10).
The
KPGRID: an integer that controls drawing of the grid both for batch mode as well
as for SPY vector graphics plots. This is equivalent to the starting value for
the first parameter of the "PEN CHOICE" request of batch-mode plotting (see
chapter XIV).
To suppress the grid (the default choice of the EMTP for more
than a decade), set this value to zero. To activate the grid, specify a non-zero
value (this will change line style or color). The user of a color monitor is
advised to select his default colors carefully, since only a very few are easily
visible and distinguishable on a typical monitor.
Do not be fooled by
advertising that proclaims "16 million colors to choose from" (nonsense to the
Ruleboob ATP (junio 1996 - internet)
H01e
20
human eye). Other, related parameters are : IZGR1 (card 13), IZGR2 (card 14),
FILL1 and FILL2 (both on card 3), NCUT1 and NCUT2 (both on card 12).
KPEN(1): 1st of 4 possible pen choices (line style or color) for batch mode and
SPY vector graphics. The four numbers associated with KPEN (three on this card,
one on card 10) are those parameters numbered 2 through 5 of the "PEN CHOICE"
request of batch-mode vector graphics plotting (see chapter XIV).
KPEN(2): 2nd of 4 possible pen choices (line style or color) for batch mode and
SPY vector graphics. Also see KPEN (1).
KPEN(3): 3rd of 4 possible pen choices (line style or color) for batch mode and
SPY vector graphics. Also see KPEN (1).
Card 10. 3rd Miscellaneous Integers
-------------------------------------------------------------------------------10 ..(4) KOMLEV
NSMTH MODSCR KOLALP MAXFLG LIMCRD LCHSUP LCHTIT LCHXAX
1
-1
50
2
5
1
4000
1
2
0
-------------------------------------------------------------------------------Parameters:
KPEN(4): 4th of 4 possible pen choices (line style or color) for batch mode and
SPY vector graphics.Also see KPEN (1) on card 9. This 4th color in addition is
used for all labelling in a batch mode plot.
KOMLEV: the level for echoing comment cards during the input of data base
modules ($INCLUDE usage) (see sections XIX-F and I-K).
The value "-1"
suppresses all such display during input.
NSMTH: default value for the limit on the number of consecutive ups and downs
before averaging of successive ordinates will occur as part of batch-mode,
vector-graphic plotting. Batch mode plotting also has a dedicated SMOOTH-request
(see chapter XIV).
MODSCR: the default value for the flag that indicates the destination device for
batch mode vector plot output. The code is as follows:
"0" indicates separate vector graphics plotting on a plotter (no screen plot),
"1" indicates both screen and plotter vector graphics plots, and finally,
"2" indicates screen plotting only (no separate plotter vector graphics). Note
that the choice of "2" for Apollo can be made by any user, since he has a
vector-graphic screen for which the plotting interface is established. Separate
plotter hardware (e.g. CalComp, Benson, HPGL, Postscript, ...) is less common
and is not standard included in the executables provided by LEC. Also refer to
section I-E-1.e, describing possibilities for such interfacing.
KOLALP: one fewer than the number of bytes making up an ALPHANUMERIC variable
name (e.g., a node name). Mnemonically, this is "column ALPHANUMERIC."
Typically, all node names are six characters long.
MAXFLG: the multiplicity with which SPY will check for user-keyed interrupts. A
value of unity means that such checking will be performed at every opportunity.
Yet if such checking might be time consuming (this will be dependent upon
computer, of course), this continual checking could involve a significant waste
of time. Remember, there are four opportunities for a SPY break each time-step.
If the user set MAXFLG = 4, he still would have the chance to interrupt
execution every time step.
Ruleboob ATP (junio 1996 - internet)
H01e
21
LIMCRD: the upper limit on the number of 80-column card images that can be
stored in the cache of LUNT10.
For most computer systems, LUNTEX (card 14) is different from LUNT10 (card 16).
In that case, LIMCRD just is the maximum number of 80-column card images of the
input data deck that can be stored in the LUNT10-cache. Hence, input data is
read into unoccupied LUNT10 storage, and the remainder, through position LIMCRD,
is never used unless there is data modularization ($INCLUDE usage of Section IK) or data sorting by class (Sections I-J), in which case the blank space is
used to insert or reorder the input records.
A few other features of the
program use the bottom of LUNT10 storage to accumulate records, too, but this
burden is generally negligible compared with that of the sorting of input data.
As a general rule, there must be as much free space as actually required to
store user data cards. So, for example, the figure LIMCRD = 4000 allows about
2000 free spaces after storage of 2000 data cards (including any expansion due
to the use of $INCLUDE, of course). So why not make LIMCRD equal to infinity,
thereby allowing arbitrarily large data cases?
Some computers might have a
limit on such usage, whereas others may execute slower with such astronomical
indexing. Most computers will tie up that much more disk space, it is believed
(how many operating systems would be smart enough not to store the unused gap in
the middle?). It is to be emphasized that card images are actually stored at
the bottom of LUNT10 with inverse indexing, sometimes, and this bottom is
defined by LIMCRD.
For IBM mainframe, however, LUNTEX (card 14) and LUNT10 (card 16) are equal. In
that case, the language font file (so called direct access file) is not really a
direct access file but rather a block data structure. There are about 5600 lines
of 80 characters in this structure, which is added in the LUNT10-cache during
execution. The reason for this was the heavy penalisation of disk access at
K.U.Leuven. In addition, also the input data deck is loaded in the LUNT10-cache.
This cache currently is dimensioned to 10 000. Accordingly, LIMCRD should be
larger than 5600 plus the number of records of the largest data set one wants to
run, but in any case, LIMCRD can not be larger than 10 000 (current limit of the
LUNT10-cache).
LCHSUP: provides control over the font that is to be used for the super title of
vector-graphic plots of SPY "PLOT" usage. The same font will be used for X-axis
labeling of X-Y plots, too.
Yet functioning of LCHSUP is installationdependent.
a) Apollo : character height, expressed in inch.
b) Salford : character height, expressed in hundredths of an inch.
LCHTIT: which controls the character font that is used for both the multi-line
case title text as well as the Y-axis text (not the numbers) of SPY "PLOT"
usage. Yet functioning of this is installation-dependent.
a) Apollo : character height, expressed in inch.
b) Salford : character height, expressed in hundredths of an inch.
LCHXAX: provides control over the drawing of the X-axis line and related axis
numbering of the vector plot of SPY "PLOT" usage.
- A negative value (use "-1" for uniformity) will suppress both the X-axis and
also its associated numbers and labeling. In general, this would only be done
if one or more grids provide alternate horizontal measurement.
- The value zero will suppress the axis itself, but not the associated numbers
and labeling. This is commonly used along with one or both grids, note, since
the grids have no such numbers or labels.
- A positive LCHXAX is installation-dependent (see subroutine VECPLT).
a) Apollo : (?) control over the boldness of the axis.
b) Salford : height of X-axis numbers in hundredths of an inch
Ruleboob ATP (junio 1996 - internet)
H01e
22
Card 11. 4th Miscellaneous Integers
-------------------------------------------------------------------------------1 LCHYAX NXINCH NYINCH
NXOFF
NYOFF NSMPLT KOLWID KOLSEP JCOLU1 KSLOWR
0
74
68
100
40
50
11
1
0
5
-------------------------------------------------------------------------------Parameters:
LCHYAX: provides control over drawing of the Y-axis line and related axis
numbering of the vector plot of SPY "PLOT" usage. It is the vertical equivalent
of the preceding LCHXAX for the X-axis.
NXINCH: the number of pixels per inch in the X-direction, for the vector plot of
SPY "PLOT" usage.
NYINCH: the number of pixels per inch in the Y-direction, for the vector plot of
SPY "PLOT" usage.
NXOFF: the number of pixels in the X-direction that the plot is offset within
the plot window, for the vector plot of SPY "PLOT" usage.
NYOFF: the number of pixels in the Y-direction that the plot is offset within
the plot window, for the vector plot of SPY "PLOT" usage.
NSMPLT: the number of successive ups and downs (cycles of a saw-toothed
oscillation) before averaging will be instituted for SPY "PLOT" usage.
KOLWID: default width for column output of the time-step loop.
The value of
"11" is minimal, corresponding to past practice when only six significant digits
were printed. The average production user may want to expand this to "13" (see
usage of DC-4). In any case, such initial values can be altered by a "PRINTED
NUMBER WIDTH" request (see section II-A-28).
KOLSEP: default inter-column blank separation that is included as part of the
preceding KOLWID. The value of "1" is minimal, corresponding to past practice.
The average production user may want to expand this to "2" (see usage of DC-4).
In any case, such initial values can be altered by a "PRINTED NUMBER WIDTH"
request (see section II-A-28).
JCOLU1: a binary flag that controls whether LUNIT6 output is to include a
carriage-control character or not. The user is advised to set JCOLU1=0. If the
first column of output text then is invisible, better toggle JCOLU to 1. Since
the IBM mainframe, Apollo and PC screens do not respond to carriage control
characters, "0" is used.
But for a computer system such as VAX/VMS, SCOLU1
should be toggled to "1".
KSLOWR: the frequency with which a rolling vector plot (use of "ROLLV") is
updated, for SPY "PLOT" usage.
If unity, every time a new solution point is
known, it will be displayed.
But such instantaneous display slows down the
simulation. It is more efficient to allow several solution points to accumulate
before they are displayed. Who needs to see each time step instantly, anyway?
Ruleboob ATP (junio 1996 - internet)
H01e
23
Card 12. 5th Miscellaneous Integers
-------------------------------------------------------------------------------2 KSYMBL NOBACK KOLEXM
LTEK
NCUT1
NCUT2 INCHPX INCHPY LCHFIL LCHLIM
200
1
60
1
1
1
2
2
0
0
-------------------------------------------------------------------------------Parameters:
KSYMBL: the initial frequency to put marking symbols on a vector plot (use of
"ROLLV"), for SPY "PLOT" usage. If no marking is wanted, set KSYMBL to a very
large positive integer.
The "MARK" sub-subcommand of the "TEK" subcommand of
the "PLOT" command of SPY can redefine this initial value (see chapter XVI).
Also see the related parameter MAXSYM (card 13).
NOBACK: the binary flag that indicates whether BACKSPACE of the LUNIT4 plot file
is permissible within the "LUNIT4" command of SPY. Zero means that BACKSPACE is
reliable for this computer of interest, whereas unity means that BACKSPACE is
unreliable, and is to be avoided (by alternate reliance upon REWIND and then
forward READs).
KOLEXM: the maximum width of each line of SPY "EXAMINE" output.
This should
normally be set so as to fit within the SPY window, so the user avoids scrolling
left or right to see such output.
LTEK: initial value of the binary flag that indicates which mode of plotting
(character vs. vector) is to be used by the "PLOT" command of SPY. Zero means
character plotting, whereas unity is for vector plotting. This initial choice
can later be toggled at any time by using the "MODE" subcommand of the "PLOT"
command of SPY (see chapter XVI).
NCUT1: This parameter again is highly system dependent, but always related to
SPY vector plotting.
a) On Apollo : the number of separate segments that are to make up the
horizontal and vertical lines of the first (outer) grid of a vector plot of SPY
"PLOT" usage. For solid lines, which are faster to draw, use a value of unity.
Dashed grids are possible, and sometimes appealing, but can be slow to draw. An
example would be to use NCUT1 = 50, which really means that within SUBROUTINE
TGRID, 50 separate short lines will be drawn for each separate vertical or
horizontal line of the first grid. Related parameters are IZGR1 (card 13) and
FILL1 (card 3).
b) On Salford : color of the super title line (SPY plotting).
NCUT2: This parameter again is highly system dependent, but always related to
SPY vector plotting.
a) On Apollo : the number of separate segments that are to make up the
horizontal and vertical lines of the second (inner) grid of a vector plot of SPY
"PLOT" usage. See also NCUT1 for possible values. Related parameters are IZGR2
(card 14) and FILL2 (card 3).
b) On Salford : color of the multi-line case title (SPY plotting).
INCHPX: the number of inches between tic marks and corresponding numbers of the
X-axis (SPY plotting). A value of two is common, meaning that every other inch,
the tic mark of the X-axis will be numbered. The length of the tic mark is
controlled by LTIC (card 14).
Ruleboob ATP (junio 1996 - internet)
H01e
24
INCHPY: the number of inches between tic marks and corresponding numbers of the
Y-axis (SPY plotting). A value of two is common, meaning that every other inch,
the tic mark of the Y-axis will be numbered. The length of the tic mark is
controlled by LTIC (card 14).
LCHFIL: controls the output of the first two lines of the plot identification of
the vector plot (SPY plotting). At issue are the plot number, the date and the
time, and the plot variables. Note the relationship with LCHLIM, which controls
the remainder of the plot identification.
A negative value (e.g. : -1) will suppress such output.
A non-negative value will activate such output. But the meaning becomes
system-dependent:
a) on Apollo : character height, in inches.
b) on Salford : character height, in hundredths of an inch.
LCHLIM: controls the remainder of the plot identification of the vector plot
(SPY plotting). It covers the scaling and limits of both axes, as well as any
hidden factors and offsets. Note the relationship to LCHFIL, which controls the
first half of the plot identification. Meaning is similar :
A negative value (i.e. : -1) will suppress such output.
A non-negative value will activate such output. But the meaning becomes
system-dependent :
a) on Apollo : character height, in inches.
b) on Salford : character height, in hundredths of an inch.
Card 13. 6th Miscellaneous Integers
-------------------------------------------------------------------------------13 NXID6
NYID6 MAXSYM
IHS LIMCOL
KLEVL
KEXTR
NXMAX
NYMAX
IZGR1
10
330
3
3
79
0
0
511
430
0
-------------------------------------------------------------------------------Parameters:
NXID6: X-pixels for the start of the "Graph Number" line that explains the
vector-graphic display of SPY "PLOT".
NYID6: Y-pixels for the start of the "Graph Number" line that explains the
vector-graphic display of SPY "PLOT".
MAXSYM: the maximum number of symbols that will be placed on each curve of a
vector plot of SPY "PLOT" in order to identify the curve. This feature is not
applicable in "ROLLV" mode. Discarding points due to "smoothing" may reduce the
number shown. Also see related parameters NSMPLT (card 11- smoothing) and KSYMBL
(card 12 - frequency of marking symbols).
IHS: the default or starting value for integer time-units code of SPY "PLOT".
This can be changed by the "TIME UNITS" subcommand of the "PLOT" command (see
chapter XVI).
Also see related parameter TIMULT (card 5).
There should be
agreement between the IHS integer number and the scaling factor for time units
(TIMULT).
Possible values are:
IHS
1
2
3
TIMULT
360*FPOWER
FPOWER
1.
Meaning
degrees, based on power frequency
cycles, based on power frequency
seconds
Ruleboob ATP (junio 1996 - internet)
4
5
6
7
1.E3
1.E6
1.
1.
8
1.
H01e
25
milliseconds
microseconds
Hertz (linear scale)
log to the base of 10 of Hertz
(semilogarithmic scale)
log to the base of 10 of Hertz
(double-logarithmic scale)
LIMCOL: the default or starting value for the column width of a character plot
of SPY "PLOT". This can be changed by the "SET COLUMN" subcommand of the "PLOT"
command (see chapter XVI).
KLEVL: the beginning value for the binary flag that indicates whether or not
level crossings are to be displayed for the SPY "PLOT" variables. A zero will
result in no level-crossing output, whereas unity will produce a table showing
when variables of the plot cross the specified levels.
When the request to
show level crossings is active, a subsequent SPY PLOT subcommand "LEVEL" (see
chapter XVI) will follow, allowing the user to specify one level value per
selected output variable (output selected via the SPY-NAME command).
KEXTR: the beginning value for the binary flag that indicates whether or not
extrema are to be calculated for the SPY "PLOT" variables. A zero will result
in no extrema output, whereas unity will produce a table of extrema for the
variables of the plot prior to creating the plot. The current status of this
variable can be toggled at any later time by the subcommand "EXTREMA" of the
"PLOT" command of SPY (see chapter XVI).
NXMAX: the X-direction width of the plotting window in pixels (SPY plotting).
NYMAX: the Y-direction height of the plotting window in pixels (SPY plotting).
IZGR1: which provides control over the first of two staggered grids of the
vector plot of SPY "PLOT" usage.
For all computers allowing SPY vector
graphics, a negative value (use "-1" for uniformity) will suppress this outer
grid. For some computers, the size of a positive value will control the boldness
of the grid. For others, there is no such control. Since variable IZGR1 is only
used within installation-dependent module "VECPLT", this detail can depend on
the computer of interest. Related parameters are FILL1 (card 3) and NCUT1 (card
12).
Ruleboob ATP (junio 1996 - internet)
H01e
26
Card 14. 7th Miscellaneous Integers
-------------------------------------------------------------------------------14 IZGR2
LTIC NXVERN
LRLIM KASEND LUNDAT KTRPL4 JORIEN LIMPNL LUNTEX
0
7
30
75
5
3
0
0
200
11
-------------------------------------------------------------------------------Parameters:
IZGR2: which provides control over the second of two staggered grids of the
vector plot of SPY "PLOT" usage.
For all computers allowing SPY vector
graphics, a negative value (use "-1" for uniformity) will suppress this outer
grid.
For some computers, the size of a positive value will control the
boldness of the grid.
For others, there is no such control.
Since variable
IZGR2 is only used within installation-dependent module "VECPLT", this detail
can depend on the computer of interest. Related parameters are NCUT2 (card 12)
and FILL2 (card 3).
LTIC: half of the length of the tic marks (expressed in number of pixels) that
are used on the X and Y axes (SPY plotting). The tic mark is drawn this many
pixels on either side of the axis. Recall that positioning of the tic marks is
controlled by INCHPX and INCHPY (both on card 12).
NXVERN: the horizontal pixel position at which Y-axis numbers are to be applied
to a vector plot of SPY "PLOT" usage. For time or frequency plots, this usually
is starting from an origin (expressed in number of pixels), located at the lower
left corner of a window. For X-Y plotting, this origin usually is referred to
the center point of a window.
LRLIM: the iteration limit ("LIM") of the LR-transform ("LR") that is used to
calculate eigenvalues within the "LINE CONSTANTS" overlay.
See related
parameter EPSLRT (card 7).
KASEND: the minimum number of records that must remain in the input data file in
order for the program to consider solving a following, stacked data subcase. At
issue is whether or not the program will read a blank bounding data case after
case-summary statistics. This is illustrated in DC36 (DATA BASE MODULE - section
XIX-F).
With value 5, note that the execution terminates, thereby saving a
little output, and speeding execution a little. Yet the user should be aware
that some computers may require the blank bounding case in order to successfully
terminate the preceding solution. The blank bounding case results in a call to
the installation-dependent module "SYSDEP", and this might contain required
termination logic.
For example, UNIX PC requires this to close the plot file
(".PL4" file on disk). So, if the user wants to always have the program read
input until a blank case is found, set KASEND = 0 (in fact, any integer less
than 2 should do the job).
LUNDAT: the I/O unit number to which the input data file can be connected within
"MAIN00" as program execution begins. This serves as a channel for reading all
data cards as a block, in order to transfer them to the ACCESS='DIRECT' storage
of unit LUNT10 (card 16). For computers with dynamic OPEN/CLOSE capability (any
sane man's interpretation of the ANSI FORTRAN 77 standard), LUNDAT must be set
equal to LUNIT3 (card 16). Otherwise, closure will not be performed promptly in
"MAIN00", but will instead await termination of the program and closure by the
operating system.
But for computers that require an external connection of disk files using job
control language (following historic IBM mainframe procedures), this must be a
distinct, otherwise-unused unit to which the file will remain connected as long
as the program executes.
Ruleboob ATP (junio 1996 - internet)
H01e
27
KTRPL4: a system-dependent flag indicating where the user wants his ".PL4" plot
file to be saved. Please recall that a PL4 file can only be created if integer
miscellaneous data parameter ICAT is positive (see section II-B-2).
Related
parameters FMTPL4 (card 20) and L4BYTE (card 15) will make the distinction in
file format for the PL4 file. Related parameter LUNIT4 (card 16) will control
the input/output channel. Related parameter MFLUSH (card 15) will allow PL4 file
creation being controlled by SPY and RAM buffer flushing control.
a) For personal computers such as the IBM PC and Salford version, KTRPL4 is used
to select between the hard disk and one or more floppy disks as the storage
device for such PL4-files (1 = disk A; 2 = disk B; 3 = disk C; etc).
An added minus sign is used as a flag to name the ".PL4" file parallel to the
input data file.
For example, if TEST.DAT is the input data file, TEST.PL4
would be the associated plot file. This is unambiguous as long as there is no
stacking of data cases (2 or more in the same disk file). For stacking, nonoverlaid computers will switch to using the date and the time for the second or
later subcase whereas strategy for overlaid computers has yet to be
standardized.
b) For Apollo : ?
c) For VAX : ?
d) For IBM mainframe : ?
e) For UNIX : ?
JORIEN: a binary flag that indicates whether oriental language is possible as
part of the language textfile (card 18).
Use zero if oriental language is not possible.
Use unity if oriental language is possible. Should unity be used, just remember
that installation-dependent SUBROUTINE ORIENT must also be available (see
Section I-E-1) and activated.
LIMPNL: the limit on the number of switching messages for Type-99 pseudononlinear resistance flashover and clearing (opening). See Section V-A for an
illustration. Every time there is a Type-99 flashover or clearing, LIMPNL is
decremented by unity.
The associated switching message will be seen only as
long as LIMPNL remains positive. A negative LIMPNL at the end of the simulation
indicates unannounced switchings, which will be mentioned in a single line of
printout preceding possible extrema.
LUNTEX: the I/O unit number for the language text file (card 18). For multiuser access to the program, the computer must be designed for such capability,
and LUNTEX must be different from LUNT10 (card 16). Generally, only the weakest
of computers and versions (e.g., the MS-DOS version for PC XT-compatible
computers) will have equality of LUNTEX and LUNT10. Please also check with
related parameter LIMCRD (card 10).
Ruleboob ATP (junio 1996 - internet)
H01e
28
Card 15. 8th Miscellaneous Integers
-------------------------------------------------------------------------------5 KINSEN LISTON LIMTAC NOCALC MFLUSH L4BYTE KOMPAR
1
0
25
0
1000
0
0
-------------------------------------------------------------------------------Parameters:
KINSEN is the ternary case-sensitivity flag.
For no modification of the case of input letters, leave this zero or blank.
Unity will convert lower case to upper case before use.
Finally, -1 will convert upper case to lower case before use.
Yet case changes of any individual input line can be prevented or inhibited by
the appearance of an exclamation point ("!") anywhere on the line. Although the
associated logic is universal, the feature possibly could be installationdependent due to its location in installation-dependent SUBROUTINE NEWCAS.
Since the first "!" of any line is erased after it is recognized, the user must
be careful that the replacement blank is really what he wants. For example, in
the case of a file name (e.g., in response to the opening prompt at the
beginning of execution), put the "!" on the right where it can do no harm (most
operating systems will either reject an imbedded blank as being illegal, or try
to connect a file having the wrong name). Further note that SPY and MODELS use
their own, imbedded logic to deal with case conversion.
LISTON is a binary flag that possibly will disable any $LISTOFF request (see
section I-D-8) of EMTP data.
Unity will ignore any $LISTOFF requests.
Leave blank or zero for no such overriding of the normal usage of LISTOFF.
Final production usage with proven data will almost always be with value zero.
But during debugging of large data cases, it sometimes is convenient to see all
input data cards in spite of numerous $LISTOFF declarations. Setting LISTON of
the STARTUP file to unity may be much simpler than modifying potentially
numerous locations of $LISTOFF in several data files (e.g. data is segmented
using $INCLUDE, see section I-K).
LIMTAC is a limit on the number of TACS warning messages that will be displayed.
Remember that before TIMTAC seconds (the time read from card 5), TACS warning
messages are ignored completely. Such ignored messages are not counted in the
limit considered here.
NOCALC is a flag to disable vector graphics output for batch-mode plotting.
Zero means no such disabling (i.e., vector-graphic plots will be possible),
whereas unity means that all cards between the "CALCOMP PLOT" and a subsequent
"PRINTER PLOT" card will be treated as if they were comment cards.
This is
useful for systems having no batch-mode plotting, for which any such an attempt
would kill execution.
See also MODE28 on Card 9, since it is possible to
specify vector-graphic plots without any "CALCOMP PLOT" declaration (if
MODE28 = 1, as is customary).
For a program version that will not tolerate
batch-mode vector-graphic plotting, MODE28 should be set to two. Another related
parameter is MODSCR (card 10).
MFLUSH is a counter of the number of times the RAM buffer for plot data points
has been written (flushed) to disk via I/O channel LUNIT4 (or -LUNIT4, if LUNIT4
is negative). The actual value is immaterial to transients, since the counting
is just for cosmetic appeal (human intelligence), anyway.
The command that
performs the plot-data transfer to disk is the "SPACE" command of SPY.
Normally, MFLUSH should be zero.
Ruleboob ATP (junio 1996 - internet)
H01e
29
The value 1000 is a special request indicating a desire for the automatic
(without any user intervention via the keyboard) flushing to disk when the RAM
buffer becomes full. Counting still occurs, so the first flushing would appear
with visual marking MFLUSH = 1001, the second would have index 1002, etc.
The batch-mode user of SPY "PLOT" (with $SPY) needs value -1000 in order to
create a ".PL4" disk file of plot data points for later usage. Also refer to
related parameters FMTPL4 (card 20), LUNIT4 (card 16) and KTRPL4 (card 14).
L4BYTE is a binary flag that allows the user to choose the
the ".PL4" file. It is consulted only if the ".PL4" file
UNFORMATTED (meaning that FMTPL4 of Card 20 must be blank).
will use an original, old, sequential ".PL4" file whereas
newer, C-like ".PL4" file.
UNFORMATTED type of
is, in fact, to be
For this case, zero
unity will use the
KOMPAR is a ternary flag that allows the user to compare old and new LUNIT6
solution files more easily on a line by line basis using an operating system
utility (e.g. $DIFF of Unix or VAX/VMS; CMF on Apollo; etc.). There are two
sorts of problems. First, each comment card contains serialization of the EMTP
card cache, and this generally will change as the program evolves. Second, some
or all maximum table sizes will change with time.
- A zero results in no special treatment, which typically results in many
differences of no importance.
- A value of unity will result in no numerical serialization of comment
cards.
Case summary statistics will be abbreviated as though the user had
requested 80-column output using KOL132 = 80.
- If KOMPAR is set to two, then all comment cards will be discarded during
data input; they will not appear in the LUNIT6 output.
Card 16. I/O Unit Numbers
-------------------------------------------------------------------------------6 LUNIT1 LUNIT2 LUNIT3 LUNIT4 LUNIT5 LUNIT6 LUNIT7 LUNIT8 LUNIT9 LUNT10
1
2
3
-4
5
6
7
8
9
10
-------------------------------------------------------------------------------The 10 available fields, read using 10I8 format, are used to assign numerical
values to the variable I/O channels LUNIT1, LUNIT2, ... , LUNIT9, and LUNT10.
These I/O channel definitions are highly system dependent, so better do not
charge the values provided by program maintenance or in the loading
instructions.
LUNIT1:
LUNIT2:
LUNIT3:
too.
LUNIT4
?
Table dumping/restoring (START AGAIN-feature ; see section II-A-33.
On some computer systems, LUNDAT (card 14) and LUNIT3 must be equal
PL4-file storage.
On some computers, a negative value (e.g. : -4) is used to indicate
storage to memory rather than in a disk file. The absolute value of LUNIT4 then
is used as unit allocation number (since such number always must be positive).
On other computer systems, storage other than in a disk file is not
possible. Then, of course, only positive values are accepted.
It should be noted that the special request word "DISK PLOT DATA" (see
section II-A-44) can be used to toggle LUNIT4 from negative to positive values,
so that a subsequent $OPEN for UNIT = 4 can be used to connect a disk file (e.g.
creation of named PL4-file).
LUNIT5: The keyboard of an interactive system connects to LUNIT5. Value 5
usually is good.
LUNIT6: The monitor or screen connects to LUNIT6. This is for normal output,
SPY commands, SPY graphics and batch mode screen graphics. But LUNIT6 can also
be rooted to a disk file directly ("DISK"-request at the beginning of execution
Ruleboob ATP (junio 1996 - internet)
H01e
30
- see section I-C). Value 6 usually is good. To add production printout to the
diagnostics (file DEBUG.LIS), use LUNIT6 = 46.
LUNIT7: If card images of supporting programs are not listed on a scrollable
window connected to LUNIT6 (as it is the case for Apollo), then the separate I/O
channel LUNIT7 is reserved for this function (unless $PUNCH is followed by a
valid file name, in which case punched output is simply routed to the specified
file). Value 7 usually is good. On some UNIX machines, value 17 should be used.
LUNIT8: Finally, LUNIT8 is reserved for batch-mode CalComp plotting, should
such an I/O channel be required. Value 28 is a good value in this case.
However, LUNIT8 can also be used for SEMLYEN output (see chapter XXII). Then
value 8 is good.
The file and record format are different for both
applications, so extreme care should be paid to the JCL-commands on IBM
mainframe. Consult the loading instructions !
LUNIT9: ??
LUNT10: This is the unit number to which input data is copied (LUNT10 is used
as direct access cache).
LUNT10 must be coordinated with LUNTEX (card 14).
Value 10 usually is good.
Card 17. I/O SPY/PLOT Window Settings
-------------------------------------------------------------------------------17 KS(1)
KS(2)
KS(3)
KS(4)
KP(1)
KP(2)
KP(3)
KP(4)
KOLROV
1
1
502
500
1
513
502
500
-------------------------------------------------------------------------------All parameters on card 17 are highly system dependent, but all related to
SPY window settings.
a) On Apollo : contains two sets of 4 pixel specifications each. Indeed,
KOLROV currently has no meaning on Apollo. The grouping of 4 is required to
specify the size of a rectangular window.
First comes the window for SPY
dialogue (columns 1-32), followed by the window of SPY vector "PLOT" usage
(columns 33-64).
Each quadruplet is ordered according to Apollo conventions:
1) the pixel of the top edge; 2) the pixel of the left side; 3) the pixel width;
and finally, 4) the pixel height of the window. The Apollo choices correspond
to the full-page screen display of the Apollo section.
This is from an old,
low-resolution (800 x 1024 pixels) Apollo monitor. Recall that RFUNL1
automatically converts to high-resolution (1024x1280 pixels), so there realy is
only one STARTUP file needed. This might not be the ideal solution, but that's
how program development tried to get rid of pixel problems.
1 ,
1 ,
top, left, width, height --- SPY window pixels
1 ,
502,
500,
{ Size SPY window 1
513,
502,
500,
{ Size PLOT window 1
For those wanting a full-width (rather than half-width) plot above, to be
overlaid by a very short (26%) SPY command window in the middle, on the right
(STARTUP2):
330,
1 ,
423,
1 ,
600,
1023,
210,
550,
{ Size SPY window 2
{ Size PLOT window 2
Alternatively, keeping this full-width plot window on top, but doubling
the height of the SPY command window (now 53%) so that it covers the right side
of the LUNIT6 output across the bottom (STARTUP3):
330,
1 ,
423,
1 ,
600,
1023,
430
550
{ Size SPY window 3
{ Size PLOT window 3
Ruleboob ATP (junio 1996 - internet)
H01e
31
Finally, for those wanting to use the EMTP as an interactive plotting
program in place of "TPPLOT", it is convenient to cover the entire screen with
the plot window, and to lay the SPY window over it in unused space of the lower
right corner. This can be accomplished by the dimensions of STARTUP4:
650,
1,
501,
1,
502,
1023,
149
799
{ Size SPY window 4
{ Size PLOT window 4
Note that STARTUP2 results in a plot window that is 50 pixels higher than
STARTUP_REGULAR (550 vs. 500), so the starting window at the bottom must be
shrunk if overlap is to be avoided. The choice STARTUP3 really is designed for
use in a $CRP window, so that the two dependent windows (SPY and PLOT) will be
opened on the remote node, leaving the full screen of the original node for
display of LUNIT6 output. So, although it appears that the LUNIT6 window should
be covered, in practice this will not happen.
The common PLOT window of
STARTUP2 and STARTUP3 has a 12-inch time axis, so using 2 inches of overlap
makes sense: ten inches of progress each time the plot is paged.
As for
labeling, the super title and any case title have been placed below the graph,
where there is plenty of room due to the expanded depth.
But more than just a change of KS and KP vectors is required, to change
window sizes properly. One also should adjust the length of the time axis of
plots, TAXISL (for full-width plots, change 5.0 inches to 12.0 inches).
The
maximum total number of X-direction plot pixels, NXMAX, should be changed
accordingly, too (for full-width plots, change 511 to 1023). Finally, for the
12-inch axis, as mentioned one paragraph above, it is reasonable to provide 2
inches of overlap (use OVRLAP = 2 / 12 = .166667).
b)
On Salford :
KS(1)
Controls copying the SPY window to disk file JUNKS.
Set to zero for this service only upon filling and closure (ESC). Set to
-1 to prevent all such use.
Set to +1 for continuous backup as I/O is generated.
See KP(3) for reuse or destruction of old JUNKS.
KS(2)
Like preceding KS(1) only for LUNIT6 (JUNKE) rather than
(JUNKS). See also KP(4) rather than KP(3) for possible concatenation.
for
SPY
KS(3)
Color of the window frame (title line at top and border at bottom) for
SPY dialogue.
KS(4)
Color of the title line for the simulation (LUNIT6) window, if any. Use
is just for the title line at the top of the screen.
KP(1)
Color of contents of the SPY window.
KP(2)
Color of the simulation (LUNIT6) window contents. A non-positive
integer is taken as a request for cyclic use of the first 15 colors in order.
KP(3)
Binary flag controlling whether SPY window contents are cancatenated to
the end of old disk file JUNKS. This assumes the user has requested backup by
KS(1). Zero means no concatenation (i.e., new backup will overwrite any old file
contents). Unity will preserve the old contents, adding new ones at the end
(bottom) of old ones.
KP(4)
Like
(JUNKS).
preceding
KP(3)
only
for
LUNIT6
(JUNKE)
rather
than
for
SPY
Ruleboob ATP (junio 1996 - internet)
H01e
32
KOLROV The 9th of 10 numbers on the SPY window-pixel card is the color to be
used for overwriting of the character search (F9 key). If the string is found,
it will be highlighted with this color.
Ruleboob ATP (junio 1996 - internet)
H01e
33
Card 18. Variable-Length Character Strings
-------------------------------------------------------------------------------18 Name of language font file ] Window] SPY @K file name ] Central Monte file]
/wsm/blockd51.bin
junk
inclspy .dat
//b/wsm/parallel.lis
-------------------------------------------------------------------------------Name of the language text file (direct access file): this principle is used on
all computer systems, except IBM mainframe. This file is connected to I/O unit
LUNTEX (card 14).
Other, related parameters are: LUNT10 (card 16) and LIMCRD
(card 10).
Window: default root name for the windows of SPY dialogue and SPY vector "PLOT"
usage.
Spy @K: skeletal name for files of numbered SPY "@" usage. The first blank byte
is to be replaced by a decimal digit at execution time, prior to OPENing of this
file.
Central Monte file: name for central statistics file, to be used by the request
word "OBSERVE PARALLEL MONTE CARLO". Please note that such file specification
is highly system dependent (see introduction to section I.E).
This file
frequently will be stored on another disk of another computer in the network.
If this file name is left blank, any Monte Carlo simulation will not attempt to
write status information to this summary file at the end of each energization
(see also section XIX-B and II-A-47).
Card 19.
A6
ALPHANUMERIC
names,
1st of 2 cards
-------------------------------------------------------------------------------9 SSONLY CHEFLD TEXNAM CHVBAR BRANCH TXCOPY USERID -TRASH -TERRA CHRCOM
PHASOR E
DUM
|
NAME
COPY
WSMTHL ...... TERRA
C {}$,
-------------------------------------------------------------------------------All data fields of Cards 19 and 20
declaration) variables, which presently
presentation, each is preceded by two
FORMAT ( 10( 2X, A6 ) ). This begins with
are for ALPHANUMERIC (the UTPF type
occupy 6 characters.
For ease of
blanks.
Each card is read using
Card 18, as follows:
SSONLY: This parameter refers to a 6-character text string that should be
positioned on cols 21-26 of a special R-L-C branch that only is present during
the phasor or steady state solution. This special R-L-C branch can be used to
take the effect of a non linear R(i) or R(t) into account during steady state
too. Please refer to chapter V (extending non linear R(i) or R(t) to the phasor
solution) or to the second subcase of DC42 for more details.
CHEFLD: Although 6 columns of the card are reserved for data input, in fact it
is just the single character of column 11 that is used.
This must be the
character that is produced by E-field encoding within FORTRAN of the computer
of interest.
That is, the resulting 35-byte character string STRING of the
statements
WRITE (STRING, 4126) D9
4126 FORMAT ( E35.22 )
will involve the use of the character in column 7. The user must beware of case
(e.g., "E" and "e" differ). See also related parameter EFIELD (card 20).
Ruleboob ATP (junio 1996 - internet)
H01e
34
TEXNAM: Root name for 1st 3 bytes of internally-defined node names of $INCLUDE
data modularization (section XIX-F). Numerical serialization will be encoded in
locations 4-6. TEXNAM can be reset during execution, using the $DUMMY command
(see section XIX-F).
CHVBAR: Character that is to be used to represent the vertical bar between input
card and interpretation of input (LUNIT6 screen output).
For those computers
(all modern ones) having such a special symbol, use it. For others, use either
"1" or "!".
BRANCH: Text for the request to name a branch.
be "NAME ".
In English, this commonly will
TXCOPY: Text for the request to copy a preceding branch by name.
this commonly will be "COPY ".
In English,
USERID: Default 6-character name for batch-mode vector plot identification.
Vector graphic plots will show this mark of ownership in the legend. But the
userid can also be set via a special request (see II-A-50).
TRASH: Text representing a garbage name (nominally "......")
internally-defined nodes (see section VII-C-6: type-16 source).
TERRA: Text
"TERRA ".
to
characterize
local
earth.
In
English,
this
for
certain
nominally
is
CHRCOM: The collection of 5 different special symbols, concatenated into a
single 6-character word. The six bytes of the word are occupied as follows:
Bytes 1 & 2 store the 2-byte indication for comment cards of EMTP data
(e.g., "C ");
Bytes 3 & 4 store the opening and closing symbols of in-line comments (e.g.,
"{}");
Bytes 5 & 6 store the continuation character and the separator character of
free-format input (e.g., "$,").
Card 20.
A6
ALPHANUMERIC
names,
2nd of 2 cards
-------------------------------------------------------------------------------0 DATTYP LISTYP PCHTYP PL4TYP EFIELD FMTPL4 -BLANK
.dat
.lis
.pch
.pl4
10E8.0
-------------------------------------------------------------------------------The following file type identifications are highly system dependent
(Recall the introduction of section I.E). It further is an alternative for the
$SUFFIX command (see section I-K). Also note that none of these type specifiers
can be applied to IBM mainframe. For some operating systems, case sensitivity
is an important item too.
DATTYP: The default file type for data files, including a separator character at
the start.
For most operating systems and user organizations, the separator
character will be a period as shown (".dat" begins with ".").
A file name
ending in this character will be extended to agree with the information of
columns 2-6 (the file type following the separator character). This is used at
the beginning of execution, either in response to the opening program prompt for
input, or to the "DATA" command of SPY. Beware: ".DAT" and ".dat" may differ,
and represent different files, for case-sensitive operating systems (e.g. UNIX,
AEGIS SR10.x).
LISTYP: The default file type for output files, including a separator character
at the start.
This is used after the "DISK" selection at the beginning of
Ruleboob ATP (junio 1996 - internet)
H01e
35
execution, in response to the prompt for a disk file name that is to be
connected to LUNIT6 (see section I-C).
PCHTYP: The default file type for punched card output, including a separator
character at the start. This is used only for computers not having scrollable
windows, for which
$PUNCH requests (see section I-D-16) are to be sent to a
separate disk file or LUNIT7. Variable PCHTYP is used to complete the name of
that file. The punch file name depends on the computer being used, with either
a fixed name or a name depending on the date and time being common choices.
PL4TYP: The default file type for LUNIT4 plot data storage, including a
separator character at the start. The variable PL4TYP is used to complete the
name of the disk file for cases where this is determined automatically by the
program, usually based on the date and time. This specification is ignored if
the user manually specifies his own file name using $OPEN (see the example of
manual opening in BENCHMARK DC-3).
Following fields are of general usage again:
EFIELD: If left blank, optimal encoding will be used for printed variable output
of the time-step loop (the columns of numbers under the heading of variable
names). This is the normal case, and it should be used unless uniform output
structure (typically with an exponential) is required for some reason. If nonblank, field EFIELD is interpreted to be the desired fixed format that is to
replace optimal encoding.
An extra "1P" is automatically supplied.
For
example, if the user supplies the character string "E13.5 ", the program will
encode a number such as (for Apollo):
" -8.77139E-01".
See also related
parameter CHEFLD (card 19).
FMTPL4: The format to read floating-point numbers in the ".PL4" plot file of I/O
unit number LUNIT4 if a FORMATTED (universal) ".PL4" plot file is desired. To
obtain an
"UNFORMATTED" plot file, this field must be left blank.
If seven
columns are needed, omit the trailing zero (e.g., "10E10."). This is for field
width less than 12, for which optimal encoding will be used. But for 12 or more
columns of width, the 6-byte specification (e.g., 6E13.6) is taken literally, a
output is done using it by a conventional, FORMATTED WRITE to LUNIT4. Warning:
usage might be installation-dependent.
For example, the MS-DOS XT/AT version
will not be able to create FORMATTED ".PL4" files.
Also see related parameter L4BYTE (card 15) to distinguish between sequential or
C-like unformatted.
BLANK: Text to store 6 blank characters. This is independent of language and
computer, of course - at least for European languages.
So much for the original STARTUP disk file, which is to be read near the
beginning of overlay "OVER1".
For the case of two or more data cases being
stacked together within a single disk file (for batch-mode execution), the
conventional logic will have STARTUP read only once, when the first of the
stacked data cases begins.
This is a fundamental difference between stacked
data cases and those that are segregated in separate disk files.
On the other hand, whether stacked or not, a user is able to request a
change in the STARTUP values during the course of execution by means of the
$STARTUP card of "CIMAGE" (see section I-D-18).
However, the user should be
warned that such usage is still being refined, and it involves some
restrictions.
For example, as presently coded for Apollo (inside the
installation-dependent "RFUNL1"), all input data of the STARTUP file from card
16 onwards (logical unit numbers, etc.) are ignored.
STARTUP parameters: logical classification
Ruleboob ATP (junio 1996 - internet)
H01e
Logical Unit allocation:
Card 8: MUNIT5
Card 14: LUNDAT, KTRPL4, LUNTEX
Card 16: all parameters
Card 18: name of language text file, SPY.@K, Central Monte Carlo file
Card 20: DATTYP, LISTYP, PCHTYP, PL4TYP
PL4-file:
Card
Card
Card
Card
Card
Card
8:
12:
14:
15:
16:
20:
NMAUTO
NOBACK
KTRPL4
MFLUSH, L4BYTE
LUNIT4
PL4TYP, FMTPL4
Output format control (LUNIT6-output):
Card 8: INTINF, KOL132, LNPIN
Card 9: LINLIM, MPAGE
Card 10: KOMLEV, KOLALP
Card 11: KOLWID, KOLSEP, JCOLU1
Card 15: LISTON, KOMPAR
Card 19: CHEFLD, CHVBAR
Card 20: EFIELD
Language text file:
Card 10: LIMCRD
Card 14: JORIEN, LUNTEX
Card 18: name of language text file
Input control:
Card 10:
Card 14:
Card 15:
Card 16:
Card 19:
LIMCRD
LUNDAT, KASEND
KINSEN
LUNT10
CHRCOM
Diagnostic messages, warnings (on LUNIT6):
Card 5: TIMTAC
Card 8: IPRSPY, IPRSUP
Card 9: LIMPNL
Card 15: LIMTAC
Node and branch naming (on LUNIT6):
Card 8: NMAUTO
Card 10: KOLALP
Card 19: SSONLY, TEXNAM, BRANCH, -TRASH, -TERRA
Complex precision (cable constants):
Card 2: ZNVREF
Card 7: PEKEXP
Newton ZNO iteration:
Card 1: EPSZNO, EPWARN, EPSTOP
Card 2: ZNOLIM(1), ZNOLIM(2)
Card 7: FACOSC
Card 8: MAXZNO
SM type 59 tolerances:
36
Ruleboob ATP (junio 1996 - internet)
Card
Card
Card
H01e
1: EPSUBA, EPDGEL, EPOMEG
2: STATFR
9: NIOMAX
Eigenvalue tolerance:
Card 7: EPSLRT, EPSPIV
Card 14: LRLIM
Connectivity:
Card 1: RHIGH, TENFAC
Card 5: FLZERO, EPSILN, FLTINF
Statistics:
Card 2: SIGMAX, TENERG, DEGMIN, DEGMAX, STATFR, XMAXMX, AINCR
Card 18: Central Monte file
Batch mode
Card
Card
Card
Card
Card
Card
Card
Card
Card
plotting:
1: SZPLT, SZBED
3: HLETT1, VHS, VS, VH
6: all parameters
7: XALPHA, YALPHA, HGTALF, D4FACT, PLMARK
8: LNPIN
9: MRGN, LINLIM, MPAGE, MODE28, KPGRID, KPEN(1...3)
10: KPEN(4), NSMTH, MODSCR
15: NOCALC
19: USERID
SPY plotting:
Card 3:
Card 4:
Card 5:
Card 9:
Card 10:
Card 11:
Card 12:
Card 13:
Card 14:
TAXISL, VAXISL, FILL1, FILL2
all parameters
FXMUMV, FXNUMH, FVAXTT, FXVERT, TIMULT, OVRLAP
KPGRID, KPEN(1...3)
KPEN(4), LCHSUP, LCHTIT, LCHXAX
LCHYAX, NXINCH, NYINCH, NXOFF, NYOFF, NSMPLT, KSLOWR
KSYMBL, LTEK, NCUT1, NCUT2, INCHPX, INCHPY, LCHFIL, LCHLIM
NXID6, NYID6, MAXSYM, IHS, LIMCOL, KLEVL, KEXTR, IZGR1
IZGR2, LTIC, NXVERN
SPY window:
Card 13: NXMAX, NYMAX
Card 17: all parameters
Card 18: WINDOW
SPY Fourier
Card
Card
Card
analysis:
3: FREQFR
8: MINHAR, MAXHAR
9: NFORS2
SPY command input:
Card 8: MUNIT5
Card 10: MAXFLG
Card 12: NOBACK
Card 18: SPY @K file name
SPY command output:
Card 8: IPRSPY
Card 12: KOLEXM, LTEK
STARTSPY Disk File for SPY Initialization
37
Ruleboob ATP (junio 1996 - internet)
H01e
38
Unlike STARTUP of the preceding two sections, the STARTSPY disk file that
initializes interactive execution, observation, and control (SPY) has no
particular order or content. This is because no fixed READ statement is used.
Instead, it is the "DEPOSIT" command of SPY that performs the initialization,
and the STARTSPY disk file is nothing more than a command file to accomplish
this automatically, at the time the first SPY input is being handled.
Any
variables carried in COMMON can so be initialized.
But for now, for Apollo,
nothing more than is already done by STARTUP is needed, so there are no active
lines of STARTSPY. That is, execution has no effect:
C
C
VERIFY
DEPOSIT
END
VERIFY
C
Begin STARTUP disk file that initializes
variables automatically when SPY is first
{ SPY command that turns the echoing of
{ This SPY command is used internally to
{ Exit "DEPOSIT" loop
{ SPY command that turns
That's all there is; EOF comes
...
...
...
...
...
...
...
etc.
etc.
etc.
etc.
etc.
etc.
etc.
Yet the user of SPY will see such execution in the SPY window, so he
should be aware of what is happening. Such automatic, internal execution at the
time SPY is requested appears as follows:
@>>>C
Begin STARTUP disk file that initializes ... etc.
@>>>C
variables automatically when SPY is first ... etc.
@>>>VERIFY
--- Toggle to "ON"
(Suppress "@" execution)
--- Toggle to "OFF" (Suppress "@" execution)
@>>>C
That's all there is; EOF comes ... etc.
SPY:
Rulebook ATP (junio 1996 - internet) H01f
I-F.
Many
Different
Computers
Support
1
ATP
Compatibility with the full (not reduced) ANSI FORTRAN 77 standard is
required for support of ATP.
There must be an INDEX function for CHARACTER
variables, and CHARACTER variables must not be limited to fewer than 255 bytes
in length.
Dynamic OPEN/CLOSE capability is not mandatory, but it certainly
is nice. Without it, data modularization (Section I-K) is not automatic.
Virtual computer architecture, and its relation to quality support of the
EMTP, deserve a few words of explanation.
The issue is not one of computer
size,
since
MS-DOS
PCs
offer virtual memory for 386 or newer processors.
Rather, the issue concerns satisfaction of some very special needs of the EMTP.
Most important is the dimensioning problem.
With 27 independent dimensioning
controls, the sizing of EMTP tables poses a serious potential problem for the
non-virtual computer shop that must solve a variety of transient problems.
During the mid-'80s,
this paragraph continued with a long explanation of why
virtual memory is desirable. Now, in 1995, it is sufficient merely to note
that lack of virtual memory management should be grounds for the immediate
disqualification of any compiler or operating system.
A general recommendation about computer systems for support of the EMTP can
be made.
If the user has a choice, generally the system that is the most
interactive, and the most nearly under user control, is to be preferred.
Carefully selected minicomputers have proven to be ideal for support of the
EMTP. Indeed, BPA itself gave up the use of its CDC mainframes and switched to
a transients-dedicated DEC VAX-11/780
in February, 1979.
Minnesota Power
earlier had pioneered the way with PRIME minicomputers.
But even better than
minicomputers for most users were scientific workstations, of which Apollo was
by far the most widely used for the EMTP by the mid-80s. Both BPA and LEC used
Apollo to develop ATP.
By the early '90s, some 25 or 30 distinct computers
had been proven to be ATP-compatible.
Only the older machines, limited by
16-bit addressing, have been found to be incompatible,
and should not be
considered. Interactivity between the user and the program is very important,
so choose among available computers carefully.
If in doubt about ATP
compatibility with some system, computer-search disk-stored newsletter files.
If that fails, check with the Can/Am user group in Portland.
Around 1990, there was a following subsection for each computer that had
proven to be ATP-compatible.
But then in 1989, the Salford compiler and DOS
extender were proven to be compatible with MS-DOS, 386-based PCs,
and most
alternatives have been abandoned. For the historic record, the original list
was as follows:
1) Apollo,
2) MS-DOS (IBM PC),
3) AT&T Unix PC,
4) DEC
VAX/VMS, 5) Mainframe IBM, 6) PRIME, 7) HP 9000, 8) Virtual CDC, 9) Sun
Microsystems, 10) Data General, 11) Charles River, 12) Apple Macintosh, 13)
Univac, 14) Cray, 15) Cydrome. 16) Floating Point Systems, 17) Intel 80286,
18) Intel 80386 Unix, 19) DEC Unix; 20) IBM RT PC, 21) Siemens, and 22)
Intel 80386 Salford. As this section is being overhauled in April of 1995, most
of this material is being removed,
although section headings and summary
explanations remain. Details of older systems can be found by consulting either
older paper copies or the installation-dependent "read me" files that should
accompany the different versions. Finally, some newer systems could be added,
but time is short. So, only the most important will be documented: 23) Watcom
ATP for OS/2, DOS, and Windows NT.
I-F-1.
Apollo
ATP
as
used
by
NYPA
An Apollo EMTP version once was available from either the Can/Am user group
in Portland or the Leuven EMTP Center (LEC) in Belgium. In 1990, the Apollo
version was by far the best, and the most highly developed. Of course, Apollo
Rulebook ATP (junio 1996 - internet) H01f
itself (windows, networking) was very good.
But since 1990,
development in
Portland has concentrated on Salford EMTP for MS-DOS computers. Apollo has not
been used in Portland for development since the summer of 1990,
and LEC was
ready to collapse 3 years later. Finally, the company (Apollo Computer) was
sold to Hewlett-Packard (H-P), and has gradually been forced to accommodate H-P
desires and standards (e.g., Unix).
To summarize,
in recent years,
Apollo
usage has declined drastically.
New York Power Authority (NYPA) in White Plains took over the distribution
of ATP materials for Apollo Aegis after the service was dropped in Portland.
NYPA experts do a good job, and have a nice package. But such Apollo usage and
service is not expected to last much longer as this paragraph is being written
in April of 1995.
IBM's OS/2 for Intel PCs has been found to be a worthy
replacement for NYPA use by Robert Meredith and Robert Schultz. Details of this
breakthrough using OS/2 Warp can be found in newsletters beginning with the
January, 1995, issue.
For details of what is still available, consult the "read me" file of
Apollo ATP distribution. Some 30 pages of details peculiar to the Apollo ATP
version existed in older Rule Books, and should still be distributed with the
computer code itself.
I-F-2.
IBM
PC
XT
( Intel 8088 )
Usage
Nothing more glamorous or innovative than an old IBM PC XT, or a PC
XT-compatible computer running
MS-DOS, is required to support real EMTP [45,
48].
Although slow due to overlaying,
and although EMTP List Sizes must be
restricted for such use, PC XT-compatible machines remain useful for education.
The same goes for PC AT-compatible (Intel 80286-based) machines.
Work on the PC XT-compatible version of ATP was abandoned around 1991.
Serious users had, by then, switched to 386s and Salford EMTP. But the Can/Am
user group has continued to hand out old files for PC XT owners. In 1994, a
couple of requests might have been received (usage has spiraled nearly down to
zero). But the code remains old, dating to 1990. For details, consult the
READ_ME.DOC file of the PC XT ATP distribution, which contains some 20 pages
of information peculiar to the PC XT version, which was produced by the Lahey
F77L compiler and could use GEOGRAF graphics by Geocomp.
I-F-3.
AT&T
Unix PC
7300
No
Longer
Used
AT&T is the abbreviation for American Telephone and Telegraph Company, once
the world's largest corporation (before involuntary segmentation that was
ordered by the U.S. judiciary). Although not a great success in the personal
computer market place, around 1985 Unix PC 7300 was an excellent product for
scientific use.
It was built around a 10-MHz Motorola 68010 microprocessor.
Rather than being all new, Unix PC 7300 technology and system software were
perfected earlier by Convergent Technologies for the minicomputer market. It is
understood that AT&T merely selected a minimal configuration of the proven
Convergent machine, and repackaged it in a much more affordable form.
The
separate interactive plotting program TPPLOT was used with Unix PC, after a
simulation had ended. A Tektronix PLOT10 interface was assumed.
Unix PC was last used by the father of the U.M., Hian K. Lauw, Professor
of Electrical & Computer Engineering at Oregon State University in Corvallis
(USA).
But Prof. Lauw moved to other interests (the manufacture of power
electronics), and those in Corvallis who continued to use ATP moved to other
2
Rulebook ATP (junio 1996 - internet) H01f
3
computers (e.g., Salford EMTP for MS-DOS PCs). As this section is overhauled in
April of 1995, no one still is known to be using Unix PC to support ATP.
I-F-4.
DEC
VMS
ATP
Used
by
BPA
A batch-mode version of EMTP that relies on the factory-supplied operating
system
VAX/VMS
or
Open VMS
will be described in this section.
Not
considered is VAX Unix (Ultrix), which is a distinct program version that first
was established and tested at the University of Illinois in Urbana, Illinois.
For a summary, read the 2-page article by Messrs. Lesieutre and Sauer in the
September, 1988, issue of EMTP News. There also is newer (1995) DEC OSF Unix
for Alpha workstations (see story in the April, 1995, newsletter).
DEC Alpha running Open VMS is fully compatible with VAX/VMS.
is compiled on either platform.
As time passes,
old VAX
disappearing; it is being replaced by Alpha RISC workstations,
run VMS (as well as OSF Unix and Windows NT).
The same code
hardware is
and these can
BPA's Randy Suhrbier has a superb interactive plotting program to accompany
DEC VMS ATP. This is the way graphics (both screen and paper) are handled by
VMS users at BPA.
For details, consult the "read me" file of the DEC VMS ATP distribution,
which contains further details that once were printed on paper in the Rule Book.
I-F-5.
Mainframe
IBM
ATP
by
LEC
The central computer of K.U. Leuven was an IBM 3033 for many years, but has
recently (late '80s) been replaced by a faster, compatible Amdahl.
An EMTP
version for the batch-mode use of this system is available from the Leuven EMTP
Center (LEC). Such support for ATP never was used in North America, however.
That was the situation around 1990. But it deteriorated rapidly.
Around
1992,
LEC's own Steering Committee recommended discontinuance of support for
IBM mainframes. Of course, LEC itself ended the following year, and nothing
further is known to have been done with the materials. To a large extent, it
was the IBM-standard PC and Salford EMTP that ended the use of IBM mainframes
for the support of ATP.
I-F-6.
PRIME
ATP
for
PTI
PSS/E
Users
During the late '70s and early to mid-'80s,
PRIME
was an important
computer for the support of
EMTP.
PRIME
was the first really successful
platform used by Power Technologies for its load flow and transient stability
package named PSS/E that became the standard of the industry. As a result,
many planning departments had PRIME minicomputers, and wanted EMTP to run
on the same computer. Before DEC VAX-11/780, EMTP ran on PRIME minicomputers
--thanks to the excellent collaboration of Thomas Varilek,
then with
Minnesota Power in Duluth (USA). This spanned the years 1976 through 1984 (the
initial ATP work).
At that point, another great ATP worker took the lead:
Robert Newell of Basin Electric Power Cooperative of Bismarck, North Dakota
(USA), which had switched from Honeywell to PRIME.
But by the late '80s, PRIME Computer was sinking. As this text is being
overhauled in April of 1995, the company exists no longer. Does the product
exist? Probably not. The problem was, when PRIME began, it had a technical
edge. PRIME was the first to offer virtual memory at an affordable price. But
Rulebook ATP (junio 1996 - internet) H01f
soon others (e.g., DEC VAX-11/780) closed the gap, sold products cheaper, had
newer systems (e.g., with no traces of 16-bit indexing), etc. Then Apollo, Sun,
and other workstations appeared,
and began attacking the minicomputer market
from below.
PRIME
never adapted,
and did not survive.
But PRIME has its
place in EMTP history.
One detail that many readers may not be aware of:
PRIME's decline seemed to prompt Salford success using MS-DOS. Yes, Salford
Software wrote the FORTRAN compiler recommended by PTI for PRIME computers. As
PTI moved to alternatives, so did Salford. By 1989, Salford was working hard
to complete the movement of its compiler to the Intel 386 (including virtual
memory). The rest is history (PRIME could not compete with 386-based PCs).
I-F-7.
Hewlett-Packard
HP-9000
Minicomputers
Dr. Olov Einarsson and associates of ASEA Research in Sweden used HP 9000
minicomputers for the support of ATP
during the late '80s.
A little like
PRIME ATP of the preceding section,
this now (April, 1995) is history.
The
usage is believed to have ended.
Unlike PRIME Computer, H-P remains a very successful company. But many
things have changed. ASEA joined Brown Boveri to create ABB, and Dr. Olov
Einarsson, who managed the ATP work in Vasteras, Sweden, was moved to other
work. Then there was the growth of workstation and PC markets, which eroded
the more expensive minicomputer market. H-P computers made the transition, but
H-P minicomputers may have been left behind.
Prof. Corwin Alexander of Oregon State University in Corvallis did set up
an ATP version by hand-modifying Sun ATP FORTRAN some time around 1991 or 1992.
Whether he might be interested in working further with the OSU H-P minicomputer
is not known as this paragraph is being reworked in April of 1995.
Around
1993, Prof. Alexander did volunteer to send a copy to someone in England (to
Nottingham?), it is recalled. Continued OSU use of an H-P minicomputer should
not be taken as a sign of commercial viability, however.
H-P has a plant in
Corvallis, and has donated lots of surplus hardware to the school. To learn
what no longer can be profitably sold, look at what companies donate to schools
for purposes of good will and tax reduction (joke)!
I-F-8.
Virtual
CDC
ATP
in
Hannover
For about two decades, the Control Data Corporation (CDC) was known for
powerful scientific computers without virtual memory management. Involved were
60-bit word machines that involved an 18-bit address --- terribly limited once
memory prices began dropping from a million dollars (or more) per megabyte to
$100 or less per megabyte.
Former users of those old, memory-bound, CDC
machines had all disappeared by the late '80s, having migrated to newer, more
flexible machinery.
One of those newer, more flexible alternatives was a fully-virtual CDC
computer line.
As crudely understood by the Can/Am user group,
this was an
all-new product line that involved 64-bit words and wide-open, fully-virtual
architecture. During the late '80s, it was heavily used at the University in
Hannover in Germany, where new versions were set up at least once a year (during
October, at the time of the annual LEC meeting, typically). This was by thenstudent Mustafa Kizilcay (today a Professor in Osnabrueck). Harald Wehrend took
over this work upon Dr. Kizilcay's departure. But then (1992 or 1993), those
controlling the computer decided to abandon CDC by switching to Sun Unix
workstations.
4
Rulebook ATP (junio 1996 - internet) H01f
5
Like the IBM mainframe version,
the CDC version of ATP has lost to
smaller, cheaper, more convenient alternatives. Even though fully compatible,
there is no incentive to continue.
In April of 1995 as this text is being
overhauled, CDC seems to be a dead-end road for ATP.
I-F-9.
Sun
Microsystems
Unix
Workstations
ATP for Sun workstations was developed and distributed by BPA during the
late '80s.
This was for Motorola 68020-based Sun-3 with monochrome monitors
--- hardware that continued to be used for ATP until 1992. Distribution was on
60-Mbyte cartridge tapes only, and details were described by a file named
"read.me" of the distribution tape. Both free CGI and optional GKS graphics
could be used.
This information now (April, 1995) is being removed from the
Rule Book.
SPARC is the Sun name for RISC workstations that superseded the Motorola
CISC machines around 1989. BPA never used such hardware for ATP, although it
did cooperate with an ABB user in Switzerland during 1990 to establish an ATP
version for SPARC. Then LEC of Leuven, Belgium, took over such work, added
support for multi-window SPY,
and distributed copies widely to members until
its demise in 1993.
Robert Sarfi of the University of Waterloo in Ontario,
Canada, used the product at his school, where he supported Profs. M.M.A. Salama
and Raymond Ramshaw,
who specialize in power electronics.
Mr. Sarfi is
believed to be among the first to distribute ATP using E-mail.
As this text is being overhauled in April of 1995, Mr. Sarfi has just
succeeded in setting a new Sun ATP translation. There are no windows, SPY, or
graphics, but the code should correctly create .PL4 files that then could be
plotted using LEC's old LECPLOT (said to be satisfactory). Look for details
in the July, 1995, newsletter. E-mail address rjsarfi@hivolt1.uwaterloo.ca is
used by Mr. Sarfi.
I-F-10.
Data General:
Minicomputers,
Aviion
A batch-mode (no SPY) version of the EMTP for Data General minicomputers
with virtual memory management was used by Instituto de Investigacion
Tecnologica in Madrid, Spain. This began with the support of BPA's "M39." EMTP
version during 1985.
Without any assistance from BPA, that computer code was
made operational on the university's Data General computer. Then early in 1987,
IIT was supplied with an ATP translation.
But as this text is being overhauled in April of 1995, such Data General
minicomputers
have
long
been
forgotten.
Adaptation
to
the
ongoing
microprocessor revolution was named
Aviion during the late '80s
--a
Unix-based workstations that are built around the Motorola 88000 RISC
microprocessor. This was a good platform for ATP support, and computer expert
Szymanski (see 386 Unix of Section I-F-18) even supported his own special ATP
software using it for a while. But Motorola 88000 did not compete well against
Intel.
Today,
no one is known to be using
DG Aviion
to support ATP.
Is
Aviion still on the market? Who has heard of Data General in recent years?
I-F-11.
Charles
River
Data
Systems
( CRDS )
Rulebook ATP (junio 1996 - internet) H01f
Charles River Data Systems (CRDS) computers were used in the power industry
by the important Indian manufacturer Bharat Heavy Electricals, Ltd. Work on an
ATP translator for CRDS began April 1, 1987. For a year, we were waiting for
virtual memory management for the Motorola 68020 microprocessors that are used.
Then, in February, we gave up hope and decided to proceed with all code in RAM
at all times, just as for the DOS extender of OS/286 (see Section I-F-17).
There are two halves to the program: a front end for simulation, and a back end
for the supporting programs.
Unlike the Intel translations, there will be no
SPY, at least initially.
Because CRDS used the same compiler (SVS) as did
AT&T's Unix PC (Section I-F-3),
that translator was modified to serve both
systems. See disk files of installation-dependent modules CRDSMODS.RUM, etc.
As this text is being overhauled in April of 1995, it seems likely that
CRDS did not survive.
It was too late supplying virtual memory management.
Nothing about CRDS has been heard for years.
I-F-12.
Apple
Macintosh :
Slow
Simulation
The Macintosh II by Apple Computer still is not an attractive platform for
support of EMTP at the end of 1990.
The problem is a lack of memory management
of any sort using Apple's regular (non-Unix) operating system.
Yet, for those
with 4 or more Mbytes of RAM, there finally was a solution from Drexel
University in Philadelphia.
Interested readers are referred to the report on
pages 38-41 of the September, 1990, issue of LEC's EMTP News.
That was for
Motorola 68020-based hardware,
using a 16-bit Language Systems compiler that
produced half-speed execution.
Around 1993, Prof. Jim Smith of Montana State University in Bozeman (USA)
reconsidered ATP using his 68040-based Mac Quadra. Several parties around the
world have been using this even though it, too, simulates slowly and is not
otherwise (graphics, windows, SPY) developed.
Finally,
Stu Cook of JUST Services in a suburb of Montreal, Quebec,
Canada, has been working on ATP for Quadra.
Look for a report in the April,
1995, newsletter. Execution remains slow, but enhancements are being made and
testing has been complete. Finally, there has been consideration of Mac Power
PC, which Mr. Cook has available on an expansion card. As this text is being
overhauled in April of 1995,
Macintosh is being given very serious attention
for ATP use. Speed may remain a problem, however.
I-F-13.
Univac
Mainframe
of
EDP
in
Lisbon
A batch-mode (no SPY) version of the ATP for old Univac mainframes (36-bit
word machines requiring overlaying) was used during the mid-to-late '80s by J.
Allen Lima of Electricidade de Portugal (EDP) in Sacavem outside Lisbon.
As this text is being overhauled in April of 1995, such old Univac usage
must be long gone. First, Mr. Lima's creative work with ATP was interrupted by
a promotion. Then Univac disappeared (Unisys was the result of a merger with
Burroughs).
Like IBM and CDC mainframes, it seems unlikely that any Univac or
Unisys mainframe ever again will be used for the support of ATP.
I-F-14.
Cray
or
SCS
Clone
Supercomputers
6
Rulebook ATP (junio 1996 - internet) H01f
7
Cray Research, Inc. has manufactured the supercomputers of choice during
the '70s and '80s;
and,
for what it's worth, ATP has been proven to be
compatible.
Actually, it was an imitation Cray "near supercomputer" by SCS
(Scientific Computer Systems) that first was tested: model SCS-40. SCS ran
Cray software.
Later, during the Summer of 1988, a separate compilation and
linking was done on a Cray XMP at the University of Illinois in Urbana,
Illinois.
No one has ever shown supercomputers to be cost effective for EMTP
simulation.
With all the cheaper and more convenient alternatives,
it seems
unlikely that Cray-compatible supercomputers ever will gain a following for ATP
use.
Only some possible real-time simulation need,
or free access ("the
computer has already been paid for, and it is not much used") might rekindle
interest in Cray.
I-F-15.
Cydrome
Cydra 5
Mini
Supercomputer
Cydrome of Milpitas, California, was a maker of what it chose to call a
"departmental level, mini supercomputer."
It was being benchmarked with ATP
materials during September of 1988.
As this text is being overhauled in April of 1995, it seems likely that
Cydrome did not survive the decline of the supercomputer market.
The ongoing
microprocessor revolution has taken a heavy toll, and Cydrome probably was one
of the victims.
I-F-16.
Floating Point Systems
( FPS )
During the mid-to-late '80s,
Floating Point Systems (FPS) manufactured
high-speed scientific processors that were generalizations of the earlier array
processors that made the company famous. Typically a flexible minicomputer such
as DEC VAX was used for access (a user-friendly "front end").
In fact,
DEC
itself sold FPS products named
FPS 30
and
FPS 60
for connection to its
8600-series VAX/VMS computers.
For test purposes, the SCS/Cray translator of Section I-F-14 was used.
This was because translation rules were compatible. Yet, the first serious user
really deserves better. FPS FORTRAN does have INCLUDE, which was ignored by
SCS/Cray.
As this text is being overhauled in April of 1995, FPS use for ATP is
dead. On the verge of bankruptcy, Cray acquired part of the FPS operation.
But now (1995) Cray itself is in trouble. Like Cydrome,
FPS
could not
withstand the challenge of the ongoing microprocessor revolution.
FPS
was
compatible, but seemed to be impractical for ATP use.
I-F-17.
OS/286
DOS
Extender
for
Intel
286
The DOS extender that was chosen to support ATP on Intel 80286-based (IBM
PC AT-compatible) PCs was named OS/286, and was written by Eclipse Computing
Solutions, Inc. (formerly A.I. Architects). The associated FORTRAN compiler and
linker are F77L-EM/16 and LINK/286, respectively -- both from Lahey Computer.
This combination applied to the ATP will be referred to simply as "the OS/286
version" of ATP. Details are covered in Ref. [49].
Rulebook ATP (junio 1996 - internet) H01f
As this text
for the support of
and serious users
dropped. The niche
is being overhauled in April of 1995, OS/286 is long gone
ATP. The Salford compiler for 386s rapidly proved superior,
abandoned 286-based computers in favor of 386s as prices
for 286-based solutions did not last long.
The old (original ) OS/2 for 286s never was tried. During September of
1989,
Dr. Mustafa Kizilcay had demonstrated feasibility of Salford EMTP for
386s.
The window of opportunity for 16-bit OS/2 had closed.
Further
explanation can be found in the December, 1989, issue of EMTP News (the 11-page
paper by Messrs. Kizilcay and Riedel).
I-F-18.
Unix
for
Intel
386-based
PCs
An EMTP version for Unix on 80386-based computers was described in LEC's
"EMTP News"
beginning in September of 1988 in articles by David Szymanski.
References can be found in the newsletter,
of course.
Being used was Unix
System V, Release 3.2, which could be obtained from several companies in the
USA.
A batch-mode version of ATP for Unix on 386-based PCs became available
free of charge to licensed ATP users in September of 1989.
By definition, SPY
was missing,
and bit-mapped plotting was done by use of separate MS-DOS
programs such as TPPLOT and WINDOWPLT (the Unix ATP could create compatible
FORMATTED ".PL4" plot files). But almost no one had the required Unix, which
was neither cheap nor simple.
Finally, with the complete success of the
alternative, simpler Salford version of Section I-F-22,
Unix was abandoned
quickly.
In addition to being a computer consultant, David Szymanski was a computer
reseller who had offered specially-configured 80286-based (PC AT-compatible)
Unix systems in the past. For a time, he filled the void for those wanting the
ideal 80386-based system for ATP simulation. His enhancements could be found
in special installation-dependent modules,
and these were superior in many
important ways. But Unix was much more complex than MS-DOS. As Salford EMTP
continued to improve, the demand for Unix to support ATP on PCs disappeared.
But Szymanski's was an important piece of ATP history that should not be
forgotten.
It included the running of SPY in parallel as a separate Unix
process,
dynamic dimensioning half a decade before the 1993 breakthrough of
Salford EMTP,
and the compression of tables during dumping (5 years before
Robert Schultz's breakthrough of Salford EMTP).
I-F-19.
DEC
Unix :
VAX
Ultrix,
MIPS,
OSF
During the spring and summer of 1988,
a
VAX
ULTRIX
(DEC's Unix)
translation was tested at the University of Illinois in Urbana, Illinois, U.S.A.
See the 2-page report by Messrs. Lesieutre and Sauer in the September, 1988,
issue of LEC's "EMTP News."
The RISC DECstation 3100, a workstation manufactured by MIPS, was said to
run ULTRIX-32 as it is introduced in the spring of 1989. This was benchmarked
at BPA
as reported in the June, 1989, issue of EMTP news.
Then, early in 1990, a
second round of testing of DECStation 3100 was completed by Prof. Jim Smith and
students at Montana State University in Bozeman. ATP certainly was compatible.
But DECstation 3100 was short-lived, as DEC turned its Unix attention from
MIPS to its own Alpha microprocessor.
8
Rulebook ATP (junio 1996 - internet) H01f
9
As this text is being overhauled in April of 1995,
there no longer is
interest in the old flavors of DEC Unix. The new DEC Alpha workstations
running
OSF Unix
certainly are of interest,
however.
Look in the April,
1995, newsletter for a story about such use by Dr. Søren Støvring-Hallsson of
NESA in Hellerup, Denmark.
The European user group (EEUG) can arrange
distribution.
I-F-20.
IBM RT PC
Workstation
Uses
Unix
RT PC was IBM's workstation of the late '80s that ran only Unix. Unlike
the top of the IBM PS/2 line, RT PC did not use any Intel microprocessor.
Rather, it used IBM's own proprietary RISC chip.
FORTRAN for RT PC was first produced during July of 1989, but never was
tested due to lack of Can/Am time (the Portland office of IBM had volunteered a
machine). Then, on 30 March 1989, an RT PC owner of the power industry
telephoned to express interest.
A new translation was rapidly produced and
mailed on 1 April 1989. But the Can/Am user group never learned what happened.
As this text is being overhauled in April of 1995, more than just ATP for
RT PC is believed to be dead. RT PC itself seems to have passed away (nothing
has been read about it in years). Of course, as well know, IBM has moved
along with Apple to the newer, more-open Motorola Power PC.
I-F-21.
Siemens
Mainframe
in
Saarlandes
Siemens is the giant German electrical manufacturer that included some
computers in its product line during the '80s. At least certain of these were
proven to be ATP-compatible at Universitat des Saarlandes in Germany. This was
during 1988. The Siemens FORTRAN compiler proved useful as a diagnostic tool,
so during late winter of 1989,
a separate translator for Siemens was
established, and a new ATP version was mailed to Saarlandes on March 28th.
As this text is being overhauled in April of 1995, Siemens computers have
been long forgotten.
Like all time-shared computers,
they no longer are in
favor for the support of ATP. Does Siemens even continue to sell them?
I-F-22.
Salford
DOS
Extender
for
Intel
386
Salford EMTP and TPPLOT for Intel 386, 486, or Pentium PCs that run
MS-DOS are by far the most widely used ATP software. These are used more than
all other versions combined. Intel PC hardware is the standard of the industry,
and the Salford DOS extender, DBOS/386, can be distributed free of charge of
any interested user.
As this text is being overhauled in April of 1995,
the many pages of
details are being removed. See the READ_ME.DOC file on the GIVE2 disk of
Salford EMTP distribution for this material. Also, consult recent issues of
the newsletter.
Any potential user should have more than 2 Mbyte of RAM,
however, along with 10 free Mbytes on the hard disk, a color monitor (most use
standard VGA), and a mouse. That is all it takes for the most high-developed
and sophisticated ATP version in the universe.
Some Japanese PCs sold within Japan are incompatible with Salford DBOS,
however, it should be noted. NEC and Fujitsu had known problems during the
Rulebook ATP (junio 1996 - internet) H01f
early '90s.
Prof. Naoto Nagaoka at Doshisha University in Kyoto understands
such details.
I-F-23.
Watcom
ATP
for
OS/2
Warp
IBM's OS / 2 Warp is one alternative to business as usual (Salford DBOS
running under MS-DOS). Robert Meredith and Robert Schultz of NYPA (New York
Power Authority in White Plains) have been pursuing this as detailed in
newsletter stories that begin with the January, 1995, issue. They pursue OS/2
Warp because of dissatisfaction with MS Windows as a multitasking environment.
Warp is a relatively-new, 32-bit operating system that should not be
confused with the crummy, old, 16-bit version of OS/2 that EPRI used to support
DCG/EPRI EMTP during the late '80s. EPRI used OS/2 that was written for 286based PC, and it simulated very, very slowly. NYPA uses the Watcom compiler,
and has demonstrated full-speed (not quarter-speed) simulation.
As this section is added in April of 1995,
the Can/Am user group is
following the NYPA lead. Although OS/2 has not yet been purchased, the Watcom
compiler already is being used with plain MS-DOS. It is compatible with both,
as well as MS Windows NT.
DOS4GW
is the name of the DOS extender used by
Watcom, and NYPA has shown that this, too, will support ATP. Look in the July
newsletter for more about this rapidly-evolving story.
10
Rulebook ATP (junio 1996 - internet)
I.G VARDIM:
H01g
1
User-Controlled Variable Dimensioning of the EMTP
The EMTP works with a large amount of data. Because it is impossible in
FORTRAN to allocate the exact needed amount of memory while the program is
running, large tables with fixed dimensions are to be predefined.
The VARDIM
utility can redimension these tables at linkage-editing time and should be used
in the following two situations:
a) The program's default table sizes do not fit your needs. This can be
the case if the user has got a table overflow error message.
Another
possibililty is that certain models are never used and the user want to
recuperate that memory. This is important for computers with virtual memory as
the program runs faster if less memory is required.
b) If the program does not fit into memory (for
versions). Reducing the table sizes is a possible solution.
overlaid
program
Vardim allows the user to size tables at linkage-editing time (loading;
binding; etc.) and not during compilation time.
The programming tricks that
result in this freedom are:
- the use of only singly-subscripted arrays
- the use of a separate COMMON block for each such vector, so that
compiler output is independent of array dimensions.
This concept was originally
detailed in Ref.8, Vol.II,
pagination VARD. See also 17 April 1975, pagination RSFU.
30 January 1975,
For the user's benefit, key points that are independent of computer
system shall now be summarized. The user is also referred to the installationdependent instructions for his computer system (Section I-F), since various
aspects of the procedure depend upon the brand of computer.
In order to size EMTP tables, the separate program "VARDIM" is to be
executed prior to linkage-editing of the EMTP. Input to this program consists
of 3 to 5 data cards that embody the user's desired EMTP table sizes. All such
data cards (except the optional DEFAULT-card) are read using 10I8 format. The
output of the VARDIM program are 10 FORTRAN routines who should be compiled and
linked with the original EMTP to form the new executable.
With only a few relatively-minor exceptions, the user can size all EMTP
tables at will.
There are 3 data cards that apply to tables used by EMTP
simulation.
A fourth (optional) card is dedicated to the non-simulation
overlays.
I.G.1 The tables used by EMTP simulation
Currently, there are 27 independent tables ("list sizes") related to the
simulation part.
First, the meaning of these "list sizes" will be discussed.
Next, the default table sizes will be specified.
Rulebook ATP (junio 1996 - internet)
2
H01g
The meaning of all "List Sizes"
First all tables used by the EMTP simulation part are explained:
1. LBUS, the maximum number of nodes (busses).
Remark that following
nodes should be taken into account too:
- ground (TERRA)
- BUSTOP (Saturable Transformer component, see section IV-E-1)
- BUS3PH+3*BUSTOP
(Saturable transformer component, 3-phase option, see
section IV-E-4)
- each N-phase coupled branch counts for 2*N
2. LBRNCH, the maximum number of branches.
Remark that following rules
should be taken into account too:
- a series R-L-C branch counts as 1,
- a 3-phase overhead line counts as 3,
- a pseudo-nonlinear branch type 99 counts as 1
- a N-winding transformer counts as 2*(N-1)+3
- true non-linear elements are not taken into account.
3. LDATA, the maximum number of
(R,L,C)
floating-point
parameter
entries that are read from branch cards. Remark that following rules apply:
- a uncoupled series R-L-C branch contributes 1
- a N-phase coupled R-L-C branch counts as N*(N+1)/2 (storage on and below
the diagonal only)
- a single-phase N-winding transformer counts as 3*N
- a three-phase N-winding transformer counts as 3*N+3
- a true nonlinear branch type 99 counts as 1
- a source type 16 counts as 2.
Whenever the reference branch procedure is used, no contribution to LDATA
is obtained.
4. LEXCT, the maximum number of sources.
Remark that following rules
apply:
-
each
each
each
each
type 1..15 source counts as 1
type 16 source counts as 2
Type-59 dynamic S.M. counts as 3
UM counts as 4
5. LYMAT, limit on floating-point storage for both the admittance matrix
[Y] of the time-step loop (all nonzero entries must be stored) and
also its
factors (diagonal and upper-triangular factors only).
Both must
be stored
simultaneously.
6. LSWTCH, the maximum number of switches. Remark that following rules
apply:
-
each switch counts as 1
each diode counts as 1
each valve (thyristor or HVDC valve) counts as 1
UM to accept type-59 data (e.g. SHAFT, TORQUE, etc)
7. LSIZE7, a limit on the total number of distinct 6-character
ALPHANUMERIC names that are used by the program. Remark the following:
(A6)
Rulebook ATP (junio 1996 - internet)
H01g
3
- Node names
have their own special storage, so do not count them for
purposes of sizing List Size 7.
- Also, do not count SPY symbol names (this has its own extra, separate
storage).
8. LPAST,
the
maximum
number
of
modal
past-history
distributed-parameter transmission lines and cables.
points,
for
9. LNONL, the maximum number of nonlinear and pseudo-nonlinear elements
of the network. These are type 91, 92, 93, 96, 97, 98 and 99 elements, recall.
10. LCHAR, the maximum number of points that define the characteristics
of nonlinear or pseudo-nonlinear elements of List 9. Remark following rules:
- each pair of input counts as 1
- no extra burden if the reference component procedure is used
Exceptions:
- Type-96 hysteretic inductors are an exception, however. For the first
such element, 2*N+8 cells are allocated, where N is the number of data cards
that define the characteristic.
Second and later elements might use the
reference-branch feature, in which case requirements drop to only six cells per
element. See Section V-D for further details of this exceptional case of Type96 branches.
- A second exception is provided by ZnO surge arresters, which require
extra storage. The burden of each arrester is equal to the number of segments
(exponentials) that require representation.
11. LSMOUT, the maximum number of Type-59 synchronous machine
(S.M.)
outputs of the time-step loop. Each such output counts as one. Value unity is
taken as a special flag to minimize all other type-59 storage as well.
The
alternate use of unity for List Sizes 16 and 17 wastes space if no machinery at
all is wanted (remember, one machine and one mass require real tables to store).
12. LSIZ12, the maximum number of outputs of the time-step loop. Remark
the following:
- SM output does not contribute (taken into account in list 11)
- Energy and Power request output do not contribute (taken into account in
list 18)
13. LSIZ13, working space (in floating-point words) for both
and interactive plotting.
batch-mode
14. LBSTAC, the maximum number of connections between Type-92 sources of
TACS and rotating machinery (either the S.M. or the U.M.).
15. LCTACS, the maximum number of bytes of CHARACTER storage for MODELS
(new TACS available on all systems, except PC XT-AT). Remark:
- Testing began in the second half of 1988.
- Unless and/or until users are told how to use this, a blank, zero, or
unity will effectively give no such storage (and no burden on memory).
- Usage of 3 x table default is always needed when MODELS should be
activated.
- For the old TACS, refer to list 19
Rulebook ATP (junio 1996 - internet)
4
H01g
16. LIMASS, the maximum total number of masses of all Type-59 synchronous
machines (List 17).
This is the total for all shafts of all machines of the
network.
17. LSYN, the maximum number of
components) described in Section VIII.
Type-59
synchronous
machines
(S.M.
18. MAXPE, the maximum number of branch or switch power and
energy
requests.
Thinking of the old, original form of the request, this is the
maximum number of column-80 requests that have a value of "4".
19. LTACST, the maximum number of floating-point cells of total storage
for all of the old TACS tables (see Section III). Remark the following:
- The memory allocation for MODELS (the new TACS) is not handled here.
Refer to table 15.
- LTACST only controls the total storage. Dynamic reallocation, proper to
the data groupings within the old TACS can be done via special requests
"ABSOLUTE TACS DIMESIONS" (see section II-A-1) or "RELATIVE TACS DIMENSIONS"
(see section II-A-29).
- A value of 23 is the minimum allowed (any small value will be increased
to this value automatically).
- A reasonable practical minimum for production
usage might be
2000.
Serious TACS users will generally want more.
20. LFSEM, storage for polynomials, representing frequency-dependent
transmission lines and cables. Please note the following:
- For JMarti modelling (Sect. IV-D-3), each branch contributes 5+7*NP
cells, where NP is the number of poles used to represent the two functions
Zo and A1.
- For Semlyen
modelling (Sect. IV-D-4), each branch requires one cell,
plus five
times the number of poles of the propogation functions, plus four
times the number of poles of the admittance functions.
21. LFD, the maximum number of cells used to store transformation
matrices
for
the
constant-parameter
and
frequency-dependent
distributed
transmission line models. Please note the following:
- For each non-copied transmission
circuit of
N
phases, 2*N*N cells
are required.
- Whenever the reference component procedure is used, the size of this
list will not be augmented.
22. LHIST: The history terms for lines. Remark the following:
- List number 8 also refers to history terms.
- For each JMarti line, 15 cells are required for each coupled phase.
- For each Semlyen line, it is the larger of six times
the number of
coupled phases and two times the number of poles of both functions (propagation
& characteristic admittance) that is required.
23. LSIZ23, a value that must be supplied for computers that do not
overlay EMTP tables (i.e. for virtual computers only).
Please remark the
following:
- For fully-virtual systems that are not short of address space, LSIZ23
gives the length in floating-point words of three giant vectors that are used
Rulebook ATP (junio 1996 - internet)
H01g
5
for node renumbering and
the phasor steady-state solution.
That is the
conventional use of List 23, which applies to all virtual computers.
- A possible exceptional use of List 23 for computers with virtual memory
(more precisely, those
computers with
KBURRO = 1) is for the storage of
intermediate results
of "STATISTICS" or "SYSTEMATIC" solutions. For each
energization,
the vectors of switch closing times and opening times, and the
output
vector (extrema) all are saved in one floating-point vector that is
dimensioned by List Size 23. Note that such storage requirements vary linearly
with the number of energizations, so any allocation will be overflowed as the
number of shots approaches infinity (beware,
user!).
Also for virtual
computers, statistical tabulations impose
even further on List 23, which is
used for working space to produce the tabulation.
24. NCOMP, the maximum number of phases of compensation ( for a circuit of
maximum size ). The actual maximum number of phases then varies inversely with
the number of actual nodes used in a particular simulation case.
Use of NCOMP = 3 is common, since this allows 3-phase compensation for
a network that is of maximum size, 6-phase compensation with a network of half
size, etc.
25. LSPCUM, the maximum number of floating-point cells of total storage
for all universal machine (U.M.) tables. Please remark the following:
- If U.M. modeling of
Section IX is not of interest, set
LSPCUM
to
unity.
- Practical
production usage allowing two 3-phase induction machines
typically requires a value of 1500 (or more).
26. LSIZ26, the length of several small working vectors that are used
for various functions in the EMTP. Originally fixed at 50 cells, these are
now variably-dimensioned to allow open-ended usage. Please note the following
rules:
- The square of the number of coupled phases of various components (e.g.,
lines or Pi-circuits) must not exceed List 26.
- Note that the common value of 3 times default gives 150, which allows a
12-phase line.
27. LSIZ27,
reserved for later use with frequency-dependent
sources
(Ref. 35).
The EMTP has such solution code, but not the
associated data
generator (never contributed to the public domain by Ontario Hydro).
Until such usage, List 27 is used only to store steady-state node voltage
outputs during "FREQUENCY SCAN" usage of module "OVER11". If such usage is
contemplated, the size of LSIZ27 should equal that of List 12, then, not unity.
28. LRTACS,
numeric storage (in floating-point words) for
MODELS (the
new TACS). See List 15. Eventually, when the old TACS is removed (after the
new TACS is proven), this field should be shifted to List 19 (storage for the
old TACS).
29. LSIZ29, the size of extra, auxiliary storage for "LABCOM" tables of
STATISTICS/SYSTEMATIC energizations. The average user is advised to leave this
field blank. Those wanting such storage for byte-organized computers can obtain
it automatically using the "RAM TABLES" declaration (see section I.G.2 point 3).
Only for word machines should an actual large value be keyed, and then only
after careful study.
132-column case summary statistics at the end of EMTP
Rulebook ATP (junio 1996 - internet)
H01g
execution will display a row for this entry only if meaningful storage has been
requested.
The default values and memory requirements
In order to redimension EMTP, the user should not only know the default
values for the List Sizes but also how many arrays are declared with the
requested List Size. In the follwing table, for each List Size the default size
is depicted, together with the number of INTEGER*4 and REAL*8 arrays that are
defined in the program.
6
Rulebook ATP (junio 1996 - internet)
H01g
TABLE 1: Default values and memory requirements
Table
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
Name
of
list size
LBUS
LBRNCH
LDATA
LEXCT
LYMAT
LSWTCH
LSIZE7
LPAST
LNONL
LCHAR
LSMOUT
LSIZ12
LSIZ13
LBSTAC
LCTACS
LIMASS
LSYN
MAXPE
LTACST
LFSEM
LFD
LHIST
LSIZ23
NCOMP
LSPCUM
LSIZ26
LSIZ27
LRTACS
LSIZ29
Multiplicity
for
integer
arrays
NR
bytes
Multiplicity
for
real
arrays
NR
bytes
Defaul
t size
4
7
0
2
1
10
0
0
11
0
3
0
4
0
0
1
10
2
0
0
0
0
16
28
0
8
4
40
0
0
44
0
12
0
16
0
0
4
40
8
0
0
0
0
6
5
3
6
1
12
2
2
8
3
1
4
8
1
2
0
6
1
1
24
2
1
48
40
24
48
8
96
16
16
64
24
8
32
64
8
16
0
48
8
8
192
16
8
0
0
0
0
1
1
8
8
250
300
500
50
2500
40
700
1750
75
160
50
50
5000
20
1
40
4
5
1600
660
100
150
4000
3
400
50
50
1
1
Note: The tables with default values use approximately 680K
bytes used per
table at
unity
size
64
68
24
56
12
136
16
16
108
24
20
32
80
8
16
4
88
16
8
192
16
8
defaul
t size
16000
20400
12000
2800
30000
5440
11200
28000
8100
3840
1000
1600
400000
160
16
160
352
80
12800
126720
1600
1200
8
8
24
3200
7
Rulebook ATP (junio 1996 - internet)
H01g
I.G.2 The input data cards for VARDIM
In general, an input data-deck for "VARDIM" has the following structure:
1. DEFAULT request card
(optional)
2. SCALE request card
(optional)
3. The RAM TABLES request
4. grouping of three cards, containing the list sizes
(mandatory)
3. Offset-card for non-simulation overlays
(optional)
Let's discuss these card formats one by one now.
1 The DEFAULT request card (optional)
Input to VARDIM begins with an optional "default" card.
This card
multiplies all default list settings by a constant. (See table 1)
The table sizes thus obtained can only be overruled by the SCALE request (see
point 2 data) or by list specifications on the mandatory grouping of three
cards. (see point 4 data)
If no such modification is desired, the user should leave all fields blank on
this mandatory grouping of three cards, and omit usage of the SCALE request.
The card format to be used for this DEFAULT request card looks as follows:
1
Parameter:
DEFFAC:
the multiplication factor to the default size (see table 1)
2 The SCALE declaration (optional)
Input to VARDIM can also contain an optional "SCALE" request. This card
multiplies all list settings (default as well as user-specified) by a constant.
The card format to be used looks as follows:
2
Parameter:
SCAFAC: the multiplication factor to all variable fields (default as well as
user-specified).
8
Rulebook ATP (junio 1996 - internet)
H01g
9
Note: SCALE differs from DEFAULT in the way that DEFAULT only applies to balnk
fields (user-specified rields remain unchanged).
The SCALE factor, however,
applies to all table sizes. If both declarations are used, then,
a) any blank field is sized using the PRODUCT of the two multipliers (i.e.
SCAFAC * DEFFAC), applied to the default table size (see table 1);
b) any user-specified field is sized using the SCAFAC multiplier, applied
to the concerning field value.
The RAM TABLES request (optional)
The format to be used is as follows:
3
If this keyword is found, then listsize 29 is internally defined to equal
LTLABL (i.e. "LABCOM" size in INTEGER words), thereby creating duplicate,
alternate storage space for tables that can be used by some computers for the
storage of STATISTICS/SYSTEMATIC energizations.
Grouping of three cards, containing the list sizes
The following grouping of three cards is mandatory. Here, the user can
specify table sizes, fitted to his actual needs. In order to allow more
flexibility, following remark is adequate:
- The table sizes obtained using the "DEFAULT" option (see point 1 data)
can only be overruled by list specifications on the mandatory grouping of three
cards, explained hereafter.
- If no such modification is desired, the user should leave all fields
blank on this mandatory grouping of three cards.
- The SCALE factor applies as a multiplier on all fields (blank as well as
user-defined).
Let us discuss the card format now.
The meaning of all list sizes is
already explained in section I.G.1 and will not be repeated here.
The input card for list 1-10
This input is always read. Values that should not be changed must be left
The card format to be used is as follows:
blank.
4
Rulebook ATP (junio 1996 - internet)
H01g
The input card for list 11-20
This input is always read. Values that should not be changed must be left
The card format to be used is as follows:
blank.
5
The input card for list 21-28
This input is always read. Values that should not be changed must be left
The card format to be used is as follows.
blank.
6
Offset card for non-simulation overlays (optional)
Certain primary-level non-solution overlays have giant working arrays (a
maximum of one per overlay) that are sized the same as "LABCOM" except for a
possible built-in offset that very crudely adjusts for the amount of code of
the overlay. If the user wants to apply an additional offset manually to this
storage, he can add a data card as follows:
7
The functioning is as follows:
1)
4)
5)
6)
"ROOT20",
"ROOT25",
"ROOT26",
"ROOT27",
cols.
cols.
cols.
cols.
1-8, for plotting and statistics tabulations;
25-32, for "LINE CONSTANTS";
33-40, for "SEMLYEN SETUP";
41-48, for "CABLE CONSTANTS".
Users of overlaid program versions should be using this feature carefully.
But virtual program versions are more common, and in this case, data
requirements are much simpler. All UTPF overlays use the same virtual storage,
10
Rulebook ATP (junio 1996 - internet)
H01g
11
so only a single offset, keyed in columns 1-8, will be used. Further, the size
does not matter much, for machines with wide-open virtual memory management.
But there are exceptions (e.g., the badly-constrained AT&T UNIX PC).
The sign and the size of the offset or offsets is impossible to predict.
When the idea began, overlaid computers were used, and offsets were generally
positive. The non-simulation overlays were shorter than the time-step loop, so
a positive offset allowed greater table size without any greater burden on
memory.
The idea was to extend non-simulation overlays to the length of the
time-step loop (overlay 16, which was the longest EMTP overlay). But then along
came virtual computers, and enormous list sizes were
requested.
Unless
specially compensated for, the giant working
arrays would be dimensioned far
beyond any reasonable program needs. To compensate, offsets became negative.
For VAX, during March of 1980, an offset of -128500 was being used. This was
at a time when LTLABL (the size of "LABCOM") was 207363 integer words.
Using the negative offsets saved a little virtual
address.
Finally, some
program versions were modified so as to save "LABCOM" within the working space
of non-simulation overlays, so there was a return to positive offsets.
There
are no general rules other than that the user is referred to the installationdependent section for his computer of interest.
I.G.3 Illustrative usage
Normal execution of the variable-dimensioning program results in minimal
printout that includes a listing of the input data cards (3 or 5 in number).
For example, if the user wants 3 times default dimensioning for all tables the
following could be the input cards:
vardim.exe
C
Comment cards of EMTP format (beginning with "C " in cols. 1-2) are
C
allowed anywhere among the data cards read by "VARDIM".
In-line
C
comments are also allowed anywhere, as illustrated on the following
C
data card.
Yet only "open" in-line comments are allowed, meaning
C
that everything to the right of the first "{" will be blanked out.
C Please consult the Rule Book for details regarding table sizes !!!!
DEFAULT
3.00
{ Optional card specifies multiple of default for blank field
SCALE
1.00
{ No inluence; extra multiplication of all sizes by UNITY.
BLANK card for List Sizes 1-10 (first of 3 or 4 mandatory cards read by "VARDIM"
5000
BLANK card for List Sizes 21-30 (3rd of 3 or 4 mandatory cards read by "VARDIM"
260000
742
{ Only 1st two fields of 4th card are used for virtual Apollo
The resulting output becomes:
C
Comment cards of EMTP format (beginning with "C " in cols. 1-2) are
Comment card is ignored.
1C
Comment cards of EMTP format
(beginning with "C " in cols. 1-2) are
C
allowed anywhere among the data cards read by "VARDIM".
In-line
Comment card is ignored.
1C
allowed anywhere among the data
cards read by "VARDIM".
In-line
C
comments are also allowed anywhere, as illustrated on the following
Comment card is ignored.
1C
comments are also allowed anywhere,
as illustrated on the following
C
data card.
Yet only "open" in-line comments are allowed, meaning
Comment card is ignored.
1C
data card.
Yet only "open" inline comments are allowed, meaning
Rulebook ATP (junio 1996 - internet)
H01g
C
that everything to the right of the first "{" will be blanked out.
Comment card is ignored.
1C
that everything to the right of the
first "{" will be blanked out.
C Please consult the Rule Book for details regarding table sizes !!!!
Comment card is ignored.
1C
Please consult the Rule Book for details
regarding table sizes !!!!
DEFAULT
3.00
{ Optional card specifies multiple of default for blank field
Default multiplier =
3.000 1DEFAULT
3.00
{ Optional card specifies
multiple of default for blank field
SCALE
1.00
{ No inluence; extra multiplication of all sizes by UNITY.
Final multiplier =
1.0000
1SCALE
1.00
{ No inluence; extra
multiplication of all sizes by UNITY.
BLANK card for List Sizes 1-10 (first of 3 or 4 mandatory cards read by "VARDIM"
1st card (Lists 1-10).
1BLANK card for List Sizes 1-10 (first of 3 or 4
mandatory cards read by "VARDIM"
5000
2nd
card
(Lists
11-20).
1
5000
BLANK card for List Sizes 21-30 (3rd of 3 or 4 mandatory cards read by "VARDIM"
3rd card (Lists 21-29).
1BLANK card for List Sizes 21-30 (3rd of 3 or 4
mandatory cards read by "VARDIM"
260000
742
{ Only 1st two fields of 4th card are used for virtual Apollo
Supplemental offsets.
1 260000
742
{ Only 1st two fields of 4th
card are used for virtual Apollo
-------------------------------------------------------------------------------------------------------------Final List Sizes 1-10 =
752
900
1500
150
7500
120
2100
5250
225
480
Final List Sizes 11-20 =
150
150 15000
60 10800
120
12
15
4800
5000
Final List Sizes 21-29 =
300
450 12000
9
1200
252
4
9600
3
Final List Sizes 51-60 =
300
600
261
7560
237
600
6768
600
504
240
Final List Sizes 61-70 = -9999
30
360
480
1212
288
1440
720
360
752
Before modify, MTOT = 232129
LSTNEW(1) = 752
LSTNEW(7) = 2100
After modify, MTOT = 211803
B4 modify, LSTNEW(29) = 3
modify, LSTNEW(29) = 3
Normal termination of "VARDIM".
LTLABL =
211803
(the size of "LABCOM"
in INTEGER words).
Fortran STOP
Following example illustrates the case where all tables sizes should be 3
times default dimensioned, supposing that only 2 S.M. outputs of the time step
loop will be requested (LSMOUT = 2).
In the previous case, the table size
corresponding to LSMOUT would have a size of 3 x 50 = 150, thus reserving 4800
byte of memory (see Table 1). If only 2 such outputs should be expected, it is
useless to waste this memory. Hence following input should be used:
DEFAULT
BLANK
3.00
2
BLANK
{ Optional card specifying multiple of default dimensioning
{table sizes 1-10 3 times default
{table size LSMOUT = 2, rest 3 times default
{table sizes 21-30 3 times default
12
Rulebook ATP (junio 1996 - internet)
13
H01g
Of course, all table sizes can be specified by the user disregarding any
default allocation.
In this case, omit the "DEFAULT" card, and specify the
table sizes on the 3 mandatory cards.
System-dependent control cards or commands will be required to actually
effect the dimensioning-changing process.
Refer to
installation-dependent
pages of the computer system of interest in Section I-f. Should a cook-book
procedure for doing the job not be found there, the user is advised to check
with Program Maintenance of his company.
In order to dimension the EMTP parsimoniously, the user must know the
multiplicity that is associated with each list that is to be resized. That is,
he must know the number of INTEGER*4 and REAL*8 arrays (vectors; columns of
tables) to which each list (or table) applies.
This handy information is
automatically printed out by the EMTP following the error text associated with
any overflow error stop of the program (KILL = 1). Any user wanting to generate
such output for himself needs only attempt to execute the 2nd subcase of
BENCHMARK DC-23 using default or smaller dimensioning.
After much general
information, there will be found the critical table of multiplicities. From the
DC-23 output:
TACS Table Number
1
2
3
4
5
6
7
REAL
multiplicity
4
2
0
5
0
0
1
INTEGER multiplicity
8
0
2
1
3
1
0
Total
multiplicity 12
2
2
6
3
1
1
The TACS table sizes that just proved to be inadequate were:
TACS Table Sizes
10
40
50
20
20 200 2000
8
6
2
8
100
Rulebook ATP (junio 1996 - internet)
II. CARDS
TO
BEGIN
A
NEW
DATA
CASE
( INCLUDING
H02a1
MISCELLANEOUS
1
DATA)
Each new data case that is to be solved must begin with one or more of the
data types described in the following subsections.
Structurally, there is an
indeterminate number (possibly zero) of special-request inputs (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 in Section II-C, only come after the last of any such
special-request cards of Section II-A.
Special-Request Cards That Precede Miscellaneous Data
Free-format
data
options
are
useful
for
special-request
inputs,
particularly for the user who is keying data via a conventional, dumb computer
terminal (on which column position is not intuitively obvious).
Take the
"FREQUENCY SCAN" declaration of Section A-16 as an example. Using free format,
a valid sample card image is as follows: "FREQUENCY SCAN, 10., 5.0, 100., 0" .
Even further abbreviation is possible for the really-lazy data assembler. Rather
than using the full request word, an acronym made up of the first letter of each
sub-word can be used. In this case, "FREQUENCY SCAN" can be abbreviated as "FS",
if desired. All special-request words are recognized in such abbreviated, freeformat fashion.
All possible special-request cards that could be recognized at this point
of EMTP data input shall 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 usage:
1)
2)
55)
3)
4)
41)
5)
6)
7)
8)
9)
48)
10)
42)
56)
11)
43)
12)
44)
53)
14)
15)
16)
45)
17)
18)
19)
20)
57)
21)
22)
ABSOLUTE TACS DIMENSIONS
ABSOLUTE U.M. DIMENSIONS
ACCESS MODULE BCTRAN
ALTERNATE DIAGNOSTIC PRINTOUT
ANALYTIC SOURCES USAGE
AUTO NAME
AVERAGE OUTPUT
BEGIN NEW DATA CASE
BEGIN PEAK VALUE SEARCH
BLANK card
CABLE CONSTANTS
CENTRAL STATISTICS FILE
CHANGE PRINTOUT FREQUENCY
CHANGE SWITCH
CHANGE TRANSFORMER
CUSTOM PLOT FILE
DATA BASE MODULE
DIAGNOSTIC
DISK PLOT DATA
EXACT PHASOR EQUIVALENT
FILE REQUEST
FIX SOURCE
FREQUENCY SCAN
HYSTERESIS
JMARTI SETUP
KILL CODES
LINE CONSTANTS
LINEAR BIAS USAGE
LOAD MORE SHOTS
MISCELLANEOUS DATA CARDS
MODE VOLTAGE OUTPUT
allocation of storage for 8 TACS tables
allocation of storage for 4 U.M. tables
branch cards for multi-phase transformer
selective printout in time-step loop
user supplied sources: desire to use
toggle choice of internal branch naming
average values for EMTP output variables
case-separation card precedes data case
time the extrema computation can begin
to signal the end of stacked data cases
cable system: calculation of constants
name of the OPMC file PARALLEL.LIS
change frequency of solution printout
to modernize former switched-R,L data
to Convert saturable TRANSFORMER to [Z]
change precision of the plot file
modularize data: $INCLUDE with arguments
selective diagnostic printout specified
toggle plot data storage (disk vs. RAM)
toggle lumped-R to long-line formulas
access to module "MIDOV1" during input
EMTP load flow: declare intention to use
multiple-freq. steady state solutions
to punch Type-96 hysteresis branch cards
frequency-dependent overhead line data
output range of program error messages
calculate overhead line constants
linearly-varied (not random) switch bias
to combine 2 or more Monte Carlo studies
read program miscellaneous data cards
modal voltage output of distributed line
Rulebook ATP (junio 1996 - internet)
13)
47)
23)
24)
25)
26)
27)
28)
49)
54)
29)
30)
31)
32)
33)
34)
58)
35)
36)
52)
51)
46)
50)
37)
38)
39)
40)
NETWORK EQUIVALENT
OBSERVE PARALLEL MONTE CARLO
OLD TO NEW ZNO
OMIT BASE CASE
PEAK VOLTAGE MONITOR
POSTPROCESS PLOT FILE
POWER FREQUENCY
PRINTED NUMBER WIDTH
RANDOM NUMBER GENERATOR SEED
READ PL4 HEADER
RELATIVE TACS DIMENSIONS
REPLOT
SATURATION
SEMLYEN SETUP
START AGAIN
STEP ZERO COUPLE
TACS SPLIT
TACS WARN LIMIT
TIME STEP LOOP
TOGGLE EXTREMA MODE
TRUNCATE OUTPUT LINES
UM TO TACS
USER IDENTIFICATION
USER SUPPLIED SWITCH TIMES
XFORMER
ZINC OXIDE
ZNO FITTER
H02a1
transfer to network equivalent routine
display and manage central status file
convert old data of ZnO to new formats
skip base base solution of Monte Carlo
request for peak node or branch voltage
postprocess ".PL4" plot file using TACS
change the synchronous power frequency
for width, blanks of DELTAT-loop numbers
initialize the random number generator
REWIND LUNIT4 and then read header only
relative sizing of the 8 TACS tables
batch-mode plot of previous solution
produce regular & hysteretic B-H curves
2-order frequency-dependent line fitter
restart a halted, preceding simulation
subnetwork ident. with switches closed
to define INTEGER/REAL ratio of new TACS
limit on the number of TACS warnings
transfer control to the time-step loop
FORMATTED vs. UNFORM. "LOAD MORE SHOTS"
output line limit after formed as KOL132
U.M. output variables go to Type-92 TACS
6-byte label overrides USERID of STARTUP
user supplied random switching times
derive impedance matrix for transformers
redefine controls of ZnO Newton solution
to fit exponentials to ZnO data points
Most of these (e.g. "AUTO NAME") are self-contained, so the explanation
that follows will be complete. But a few represent requests for the transfer to
separate supporting programs, and for these requests, there will be references to
further explanation at the back end of the book.
An example of the latter is
"NETWORK EQUIVALENT". A final point is about abbreviations, which can always be
used (although such use is not encouraged). In alphabetical order, corresponding
to the preceding tabulation, we have:
ATD
CSF
FXS
NE
RTD
TOL
AUMD
CPF
FS
OPMC
R
UTT
AMB
CS
HYS
OTNZ
S
UID
ADP
CT
JMS
OBC
SS
USST
ASU
CPF
KC
PVM
SA
X
AN
DBM
LC
PPF
SZC
ZO
AO
D
LBU
PF
TS
ZF
BNDC
DPD
LMS
PNW
TWL
BPVS
EPE
MDC
RNGS
TSL
CC
FR
MVO
RPH
TEM
Request for Absolute Allocation of Total TACS Storage
TACS is the control-system modeling feature of Section 8.
Total working
space for all TACS tables is assigned in List 19, along with the other 27 or so
EMTP lists (see Section I-G). But there still remains the question of how this
total working space is to be divided among the eight 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 ("ABSOLUTE TACS DIMENSIONS"), followed by a card giving the
desired absolute sizes:
2
Rulebook ATP (junio 1996 - internet)
H02a1
3
8
9
The format for the sizes is 8I8, with the 8 required TACS table sizes having the
following meaning:
LT1 : Maximum number
transfer functions H(s) .
of
TACS
dynamic
function
blocks,
having
Laplace
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 REAL cells which 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, intermediate variables of supplemental-variable expression evaluation each
requires one, the average device might require between 3 and 5,
and the most
Rulebook ATP (junio 1996 - internet)
complex device (the RMS sensor, Type 66 (requires
is the fundamental frequency.
H02a1
4
1 / ( f * DELTAT ) where "f"
LT8 : Maximum number of distinct TACS variables used in the TACS data
specification.
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.).
See
Section A-29 for details.
The interpretation of the two input data cards confirms only the first 5 of
the 8 integers being specified. The following illustration has been taken from
the 2nd half 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
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 among the four U.M. tables by means of
the following request for absolute sizes:
10
Parameters:
NCLFIX (33-40): Maximum total number of U.M. coils in the data case.
is the total for all U.M. components involved.
NUMFIX (41-48): Maximum number of U.M. components for the data case.
This
Rulebook ATP (junio 1996 - internet)
H02a1
5
IOTFIX (49-56): Maximum number of U.M. output quantities (total for all
machines).
IBSFIX (57-64): Maximum
(total for all machines).
number
of
U.M.
6-character
alphanumeric
names
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 the
EMTP 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 (e.g.,
Apollo, VAX, PRIME, and IBM), a List-25 size of 300 is sufficient for this usage
(and it corresponds to the default allocation of "VARDIM" for List 25). Word
machines will need more (it appears that value 410 should be adequate).
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
Request for Alternative Diagnostic Printout of the Time-Step Loop
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 Section A-10), then diagnostic printout controls of the time-step
loop are to be switched. Those of the "DIAGNOSTIC" request (Section A-12) 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 codes.
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:
Rulebook ATP (junio 1996 - internet)
H02a1
11
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
Declaration of Intention to Use Type 1-10 Sources Analytically
As explained in Section VII, source types 1 through 10 are reserved for
functions that are directly defined by the user.
If one or more such source
functions is to be defined in FORTRAN within a special user-supplied version of
SUBROUTINE ANALYT, then the following special request record must precede input
of the miscellaneous data cards for the data case in question:
12
It is the user's responsibility to see to it that his own special
SUBROUTINE ANALYT has replaced the near-dummy module comes with the UTPF, of
course.
The UTPF module is useful only for the artificial illustration of
BENCHMARK DC-6.
Interpretation of the input declaration appears as follows (note that there
are no parameter values to be confirmed):
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------User-supplied SUBROUTINE ANALYT is declared.
|ANALYTIC SOURCES USAGE
6
Rulebook ATP (junio 1996 - internet)
H02a1
7
Request to Average EMTP Output
Successive values of EMTP output variables will
printing and plotting if the following request is made:
be
averaged
prior
to
13
The mathematics of the EMTP 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
are no parameter values to be confirmed):
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------Request to average (smooth) output variables.
|AVERAGE OUTPUT
Optional Case-Separation card
While not mandatory, it is good practice for the EMTP user to make the very
first card of each data case a special case-separation marker:
14
Rulebook ATP (junio 1996 - internet)
H02a1
See any standard test case (e.g., BENCHMARK DC-18) for an example.
For
this just
appear on
the left,
execution that terminates normally, or for single-data-case solutions,
described card serves no operational purpose.
It does, of course,
the 80-column input data listing, with appropriate interpretation on
but that's all.
On the other hand, should the EMTP decide to prematurely terminate
execution of a particular data-case solution (with an EMTP error message), then a
case-separation marker becomes important.
The program automatically steps over
remaining input cards, discarding them one at a time until it finds such a "BEGIN
NEW DATA CASE" record. At that point, a new data case is known to begin, so the
EMTP can correctly recover to solve the just-found following case.
This is
referred to as EMTP error-recovery capability, during execution involving two or
more data cases.
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 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).
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 (the function of which is explained in section II-A-8).
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
records of the input data are discarded.
2. Following normal completion of the solution for any particular data
case, the very first non-comment record 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).
Interpretation of the input declaration appears as follows (note that there
are no parameter values 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
8
Rulebook ATP (junio 1996 - internet)
H02a1
9
Request for Delay in Extrema Calculation
The integer miscellaneous data parameter
MAXOUT
(see Section II-B)
provides for the calculation and output of variable extrema. The
same vector of extrema is 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 the following special-request card upon which the beginning time
BEGMAX in seconds is to be keyed in columns 33-40:
15
For an example of such usage, see BENCHMARK DC-48.
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:
16
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.
Rulebook ATP (junio 1996 - internet)
H02a1
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-53
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-53 provides an illustration of such usage:
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
Blank Card to Terminate EMTP Execution
The traditional termination procedure for the solution of a disk file that
contains one or more stacked data cases is to have the first card of the
following (non-existent) data case completely blank.
The use of "BLANK " in
columns 1-7,
followed by anything for the rest of the card image, is also
acceptable. By agreement, either of these tell the program that there remain no
more data cases to be solved, so that EMTP execution can return to the original
opening prompt ("EMTP begins. Send ...").
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" card. This is as per Section A-6.
This was the situation for years and years, and it remains good practice
today. Yet the blank terminating card at the end generally will not be read. If
fewer than 5 data cards 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 reissues the opening prompt ("EMTP begins. Send ..."). This saves a
little output.
Calculation of Parameters of Multi-Phase Coaxial Cables
The calculation of parameters for multi-phase coaxial cables is isolated in
a separate UTPF overlay.
It is really 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:
10
Rulebook ATP (junio 1996 - internet)
H02a1
11
17
Normally only the request word is required (leave columns 16 onward blank).
For an example of such usage, see BENCHMARK DC-27 or DC-28.
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
part reserved for CABLE CONSTANTS parameters (as explained near the top of
MAIN27). As a rule of thumb, following equation is valid:
ratio = #conductors/SC cable = 2 + KTRLSW(3)
Of course this implies KTRLSW(3) > -2.
Following table was derived for 0.85 times default dimensioning.
KTRLSW(3)
-2
-2
0
1
2
#SC
92
42
22
15
11
#conductors
0
42
45
46
47
ratio
0
1
2
3
4
Interpretation of the input data confirms the usually blank (zero) value of
KTRLSW. Using BENCHMARK DC-27 as an illustration:
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------Find parameters of cables. Type = 0.
|CABLE CONSTANTS
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:
Rulebook ATP (junio 1996 - internet)
H02a1
18
19
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).
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.
2.
IPRSOV(16:19) of Section A-12 (a "DIAGNOSTIC" request);
IPR(1:4) of Section A-3 ("ALTERNATE DIAGNOSTIC PRINTOUT").
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.
Note that the present usage is more general than that of Section II-C.
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 also has meaning when it is positive, as a request for the keying of
terminal conditions. The user might want to do both of these operations in the
same data case, which before was impossible (since variable IPUN could not be
12
Rulebook ATP (junio 1996 - internet)
H02a1
13
both negative and positive at the same time).
Another advantage is clarity,
since the present structure is clearly labeled by the special-request card.
Interpretation of the input data confirms only the first three of the five
pairs of integers that are defined. An illustration is provided by BENCHMARK DC48:
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
Request for Non-Standard Precison of Plot File Data Storage
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 variable). In such cases, full EMTP solution precision may be desired. For
those computers that store output variables with reduced (typically half)
precision, a special request (the "CUSTOM PLOT FILE" request illustrated below)
is required to override the default decision favoring reduced precision. It also
is conceivable that some user might sometime want to decrease the precision of
his plot data point storage, although such usage is probably much less common.
Actually, the declaration toggles the choice of plot file precision, so can be
used for either operation:
20
Interpretation of the input declaration appears as follows
illustration, the change was from single precision (M4PLOT = 2)
precision (M4PLOT = 0):
(for this
to double
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------Toggle choice of disk plot file. M4PLOT = 0.
|CUSTOM PLOT FILE
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.
Rulebook ATP (junio 1996 - internet)
H02a1
But if IPRSUP is to be keyed zero or blank, then the EMTP diagnostic
printout can be controlled overlay by overlay of the UTPF. A special-request card
bearing the key word "DIAGNOSTIC" in columns 1-10 is used in this case, followed
by 10 blanks, followed by values for each of the 29 overlays as 29I2 information:
21
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
Overlay
Overlay
Overlay
Overlay
Overlay
Overlay
1:
2:
3:
4:
5:
6:
7:
Special-request cards, miscellaneous data
Only TACS data input
Branch input
Switch (including diodes/valves) input
Source (including S.M. and U.M.) input
Network connectivity
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 Section A-3 should be used to define the nonzero printout
codes (one or more 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.
14
Rulebook ATP (junio 1996 - internet)
H02a1
15
Interpretation of the input data confirms only the first 12 of the 29
integers that are defined. An illustration is provided by BENCHMARK DCPRINT-5:
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------Debug print.
0 9 9 9 9 9 0 9 9 9 9 9 |DIAGNOSTIC
0 9
Rulebook ATP (junio 1996 - internet)
H02a1
16
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 specialrequest card is used:
22
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.
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,
An
Rulebook ATP
(internet junio de 1996)
h02a2
1
.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 disasterous for those computer
systems that do not have alternate logic to intercept such advance usage.
23
Interpretation of the input declaration then appears as follows:
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------Request for "CALL MIDOV1" execution.
|FILE REQUEST
. Declaration of Intention to Use EMTP 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:
24
For examples of such usage, see the standard test cases BENCHMARK DC-25 and DC26. Interpretation of the input declaration then appears as follows:
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Rulebook ATP
(internet junio de 1996)
Declaration of desired EMTP load flow usage.
|FIX SOURCE
h02a2
2
{ Declare
. Declaration of Intention to Use "FREQUENCY SCAN"
The "FREQUENCY SCAN" feature (cfr. DC-51) of the EMTP allows for the repetition
of steady-state phasor solutions (so be sure to put TMAX = 0, DELTAT has no
meaning), as the frequency of sinusoidal sources is automatically incremented
between a beginning and an ending frequency. Rather than conventional EMTP timeresponse output, the user then has available a frequency-response output. When
plotted, the time axis of conventional EMTP simulations becomes the frequency
axis, with the result being a Bode plot. Either polar coordinates (magnitude and
angle) or rectangular coordinates (real and imaginary parts) of the phasor
solution variables are used for output purposes.
For example, the following
could apply to the node voltage of phase "a" somewhere in the network:
Magnitude
***
|
*
*
|
*
*
|
*
*
|***
*
|
*
|
*
|
*
|
*
+----------------------------->
Frequency
Angle
|
*
*
|
*
|
*
|
*
|
*
|
* *
|* *
|
+---------------------------->
Frequency
Should the user desire such multiple steady-state phasor solutions, then the
following special-request card must precede the miscellaneous data cards:
25
Parameters:
FMINFS of cols. 25-32: the beginning (minimum) frequency of the scan, in [Hertz].
This must be a positive number.
DELFFS of cols. 33-40: 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.
Rulebook ATP
(internet junio de 1996)
h02a2
3
FMAXFS of cols. 41-48: 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 of 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 then will be related by: (f(k+1) /
f(k)) ** NPD = 10.
Special attention should be paid to integer miscellaneous data parameter KSSOUT
when using the "FREQUENCY SCAN" option.
See the Section II-B definition.
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.
Other positive
values of
KSSOUT
will produce additional phasor output, only in smaller
quantity. Hence, be careful of positive KSSOUT.
Except for the just-mentioned full branch-flow and injection printout,
only
node-voltage output is presently available for "FREQUENCY SCAN" solutions. The
node voltage output request format is explained in chapter XII. Any request to
output branch or switch variables (voltage differences, branch currents, powers
and energies) or TACS variables will be disregarded in FREQUENCY SCAN mode. Node
voltages are outputted in both polar (magnitude, angle in degrees) and
rectangular (real, imaginary) forms.
The induction (asynchronous) alternative of the U.M. should
not be used with
"FREQUENCY SCAN"
unless it is known that
installation-dependent
SUBROUTINE
PLTFIL does not rely upon storage of the COMMON block for vector I4BYTE. The
UTPF contains an Apollo module, and this uses the storage of I4BYTE for
conversion of the "FREQUENCY SCAN" output vector to single precision prior to
storage. The replacement of I4BYTE by a local vector of sufficient length (equal
to the maximum number of output variables) will remove the restriction, of
course.
For the LUNIT6 line printer output, there really are two component output
vectors, beginning with the polar form, and ending (after starting on the left on
a new line) with the rectangular form.
For the plot file of I/O unit number
LUNIT4, the two parts are concatenated into a single, double-length, output
vector. An extract of the LUNIT6 output is displayed hereafter.
mag:LOAD
angle:LOAD
mag:MID
angle:DUM
mag:TRAN
angle:TRAN
mag:CUR
angle:CUR
mag:
real:LOAD
imag:LOAD
real:MID
imag:DUM
real:TRAN
imag:TRAN
real:CUR
imag:CUR
real:
-----
angle:MID
mag:DUM
imag:MID
real:DUM
Output vector for step number 1.
Frequency = 6.00000000E+01 Hz.
1.0000000E+02
0.0000000E+00
9.3571522E-01
-2.0655997E+01
0.0000000E+00
0.0000000E+00
9.3571522E-01 -2.0655997E+01
9.3571522E+01 -2.0655997E+01
1.0000000E+02
0.0000000E+00
8.7556297E-01
-3.3007946E-01
0.0000000E+00
0.0000000E+00
8.7556297E-01 -3.3007946E-01
8.7556297E+01 -3.3007946E+01
Rulebook ATP
(internet junio de 1996)
Top "TAPSAV". NCHAIN = 8
Total network loss P-loss
by summing injections =
h02a2
4
3.991500107967E+03
-----
Output vector for step number 2.
Frequency = 8.00000000E+01 Hz.
1.0000000E+02
0.0000000E+00
8.9347637E-01
-2.6686610E+01
0.0000000E+00
0.0000000E+00
8.9347637E-01 -2.6686610E+01
8.9347637E+01 -2.6686610E+01
1.0000000E+02
0.0000000E+00
7.9830002E-01
-4.0126936E-01
0.0000000E+00
0.0000000E+00
7.9830002E-01 -4.0126936E-01
7.9830002E+01 -4.0126936E+01
Top "TAPSAV". NCHAIN = 8
Total network loss P-loss by summing injections =
3.584784001624E+03
This output is extracted from a modified version of BENCHMARK DC-51. One extra
node "DUMMY" was added, to produce more output,
thereby clearly showing the
boundary between the polar and the rectangular outputs.
The final line of
heading (before the step-1 output) shows that there are five complex output
quantities, or 10 numbers total in both the polar output and the rectangular
output.
Also for plotting, only node voltage output can be requested although all output
variables are considered to be of type "9" (branch currents). One pair of names
is associated with each node name. Suppose that NODNAM is the name of the node
voltage which is of immediate interest.
The corresponding pair of names then
should be one of the following:
(NODNAM,
(NODNAM,
(NODNAM,
(NODNAM,
mag) ---ang) ---real) --imag) ---
for
for
for
for
the
the
the
the
magnitude of node voltage NODNAM;
associated angle in degrees.
real part of node voltage NODNAM;
associated imaginary part.
Such plotting is illustrated by BENCHMARK DC-51, where character plots of both
polar and rectangular quantities are illustrated.
For easy reference,
I
reproduce the two plot cards of that data case. All plotting is for steady-state
node voltage components versus frequency at node "CUR
" :
C
1
2
3
4
5
C 345678901234567890123456789012345678901234567890
C -----------------------------------------------PRINTER PLOT
19630. 60.150.
CUR
mag
CUR
angle
19630. 60.150.
CUR
real CUR
imag
BLANK card ending plot cards
For details regarding the card format of this plot card, please consult section
XIV-A-3.
An extract of the corresponding printer plot output looks as follows:
Rulebook ATP
(internet junio de 1996)
h02a2
Request for character (line printer) plotting.
| PRINTER PLOT
>> Plot card.
3.000E+01 6.000E+01 1.500E+02
| 19630. 60.150.
mag
CUR
angle { Axis limits: (-4.134, 9.357)
22-Jun-88 10.33.56
1
Plot type 9
Node names
CUR
MAG
Time-axis legend : Frequency
f
5
CUR
CUR
ANGLE
in Hertz
( x 10**( 1) )
-4.134 -3.096
-2.058
-1.020
0.017
1.055
2.093
3.131
4.168
5.206
6.244
7.282
8.319
9.357
+---------+---------+---------+---------+---------+---------+---------+--------+---------+---------+---------+---------+---------+
B
|
A
|
|
|
B
|
A
|
90.
|
|
B
|
A
|
|
|
B
|
A
|
|
|
B
|
A
End of graph.
However, if the user needs branch currents or voltage differences, rather than
node voltages, he is adviced to add one or more measuring transformers for this
purpose (see Section IV-E).
A 2-winding transformer that draws no magnetizing
current, and that has small leakage impedance, would be appropriate, to insure
accurate measurement (just as in the real world of instrumentation).
- For a voltage difference between BUSK and BUSM, following scheme could be
used:
Rulebook ATP
(internet junio de 1996)
h02a2
6
26
The primary of the transformer should be connected across the two desired nodes.
The turn ratio should be unity. The secondary should have one grounded terminal.
The open circuit terminal voltage VKM then is a measure for the voltage
difference.
- For a branch current in a resistor R between nodes BUSK and BUSM, following
scheme could be used:
27
The primary of the transformer should be connected across the resistor with
value R. The turn ratio should be R:1. The secondary should have one grounded
terminal.
The open circuit terminal voltage IKM then is a measure for the
current flowing in the resistor R.
If phasor branch-[Y] data is being used with "FREQUENCY SCAN" (see Section IVC), then the user must connect the file of such data to I/O channel LUNIT8
using
$OPEN.
The format of data is simple
enough.
Data is ordered with
increasing frequency. There must be one set of phasor branch-[Y] data for each
frequency of the "FREQUENCY SCAN". Each such data set consists of a single,
arbitrary comment line followed by [Y] --- for each branch so represented, in
order of branch input.
Since [Y] is symmetric, only the lower-triangle is
inputted.
Numerical data is ordered as
for the [Y] input of Section IV-C,
although more precision is allowed: use FORMAT ( 4E20.0 ). No node names are
used, note, since these are already known, Just supply the (G,B) pairs, up to
two per card.
Data is inputted by rows of the lower triangle (up
to and
including the diagonal), with data for each row beginning on a new card. Readers
having access to FORTRAN can search for LUNIT8 usage within SUBROUTINE SUBR10.
Rulebook ATP
Interpretation of
declaration.
As
BENCHMARK DC-51:
(internet junio de 1996)
the input data confirms the four input
an illustration, consider the associated
h02a2
7
numbers on the
output line of
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------F-scan.
6.000E+01
2.000E+01
1.300E+02
0 |FREQUENCY SCAN, 60., 20.,
. Frequency-Dependent Representation of Overhead Lines
In order to represent overhead transmission lines with frequency-dependent
parameters and a 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.
The transfer to this
supporting program is accomplished by the following request:
28
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 card just shown to any branch cards that later are to be punched.
This is no different than for node names of a "BRANCH" request, only here the
request comes earlier, outside the supporting program.
For an example of such usage, see BENCHMARK DCNEW-3. Interpretation of the input
declaration then confirms the input parameter as follows:
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------Jose Marti`s line fitter.
PDT0 = 1.0
|JMARTI SETUP, 1.0,
. Request for the Printing of Fatal EMTP Error Messages
It sometimes is handy to be able to generate the text of any particular fatal
EMTP error message (or "KILL code") without actually being obliged to set up a
data case that will so terminate erroneously during execution. This is possible
using the request:
Rulebook ATP
(internet junio de 1996)
h02a2
8
29
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.
Rulebook ATP
(internet junio de 1996)
h02a2
9
The most common usage of this feature will be 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. An illustration has been placed at the end of BENCHMARK DC-13,
resulting in the output:
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------Test output of error messages 13
through 14
|KILL CODES, 13, 14,
. Calculation of Parameters of Overhead Transmission Lines
The calculation of parameters for overhead transmission lines is isolated in a
separate UTPF overlay. It really is a separate, self-contained program, and all
usage is described in the separate Section XXI.
To transfer to that separate
program, the following special-request card is used:
30
For examples of such usage, see BENCHMARK DC-29 or DC-59. The latter of these
provides an illustration of interpretation, which is as follows:
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------Compute overhead line constants. Limit = 54
|LINE CONSTANTS
In addition to the nature of the message, note that there is confirmation of the
limiting number of conductors.
The value shown was for Apollo with default
dimensioning and an offset (4th card) of 50K.
Rulebook ATP
(internet junio de 1996)
h02a2
10
. Option of linearly-varied bias for Monte Carlo Studies
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 program response
to the request:
31
No further information is required, since limits on the bias have already been
provided by the "STATISTICS" miscellaneous data parameters DEGMIN and
DEGMAX
(see Section II-C, columns 41-56). For a case with "LINEAR BIAS USAGE", 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.
The interpretation of this request appears as follows (note that it involves the
confirmation of no parameter values):
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------Ramped linear variation of random bias.
|LINEAR BIAS USAGE
. 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 problem.
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 DC40 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 word
"MISCELLANEOUS DATA CARDS" as follows:
Rulebook ATP
(internet junio de 1996)
h02a2
11
32
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
interpeted as follows:
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------Request preceding 2 miscellaneous data cards.
|MISCELLANEOUS DATA CARDS
. Tricky Mode-Voltage Output Request for 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 can
not be physically measured.
Since all distributed-parameter transmission-line
models 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 distributedparameter transmission line. The request has the following form:
33
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 numerical value need be
keyed.
Rulebook ATP
(internet junio de 1996)
h02a2
12
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-resistance 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 value so large that
the answer is unaffected.
So much for data input.
After the case has been run, the user will find his
modal voltages in the output locations that would otherwise have been reserved
for the branch currents just mentioned.
This is why the present feature is a
little tricky. The first "MODOUT" ouput 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 ("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 which were supplied by the
user.
An illustration of this feature is provided by the 2nd subcase of BENCHMARK DC38. 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
. Request to Convert ZnO Branch Cards from Old to New Formats
The following request will provide conversion from old ("M36." or earlier
vintage) zinc oxide arrester branch data into the current formats (as required
for "M38." and later versions of the program):
34
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) replacement branch cards to represent the ZnO arresters. It
will then be the user's responsibility to replace the old card images with the
new ones, using his system editor.
Rulebook ATP
(internet junio de 1996)
h02a2
13
An example of such conversion is provided by the second subcase of standard test
case
BENCHMARK DC-13.
The following illustrative interpretation has been
extracted from the solution of this case:
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------Request to convert old ZnO data to new formats.
|OLD TO NEW ZNO
Rulebook ATP
(internet junio de 1996)
h02a2
14
. Request for Omission of Base Case of "STATISTICS" Simulation
The conventional "STATISTICS" or "SYSTEMATIC" data case involves a base case
solution 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
suppress this extra, preliminary simulation by a special request card reading:
35
Resulting statistical tabulations are unaffected, since the base case solution
was not part of the statistical processing, anyway.
So, if the user already
knows how the base case solution looks, he can save one shot, as well as some
paper.
An example of such usage is provided by of standard test case BENCHMARK DC-13.
The following illustrative interpretation has been extracted from this solution:
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------Omit base case if STATISTICS/SYSTEMATIC usage. |OMIT BASE CASE
. 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 that
this will occur. If so, there exists the paper-saving alternative that avoids
voltage output for all nodes or branches:
36
Variable
MAXVLT
chooses the type of voltages being monitored:
1 --- for node voltages only;
Rulebook ATP
(internet junio de 1996)
h02a2
15
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.
Rulebook ATP
(internet junio de 1996)
h02a2
16
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
voltage as follows (from the second subcase of BENCHMARK DC-7):
branch
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 .el
Many of the standard test cases employ such usage. 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,
. Request for Postprocessing of Plot File Using TACS
TACS can be used for the postprocessing of plot files. 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 DC46. Variables of the plot file will be assigned to user-defined TACS sources in
natural order by the EMTP, thereby providing the connection for postprocessing by
the user. This is the response to the request:
37
Variable IPLOT of cols. 33-40 is to be an integer indicating frequency of the
output, not unlike the miscellaneous data parameter of the same name.
For
Rulebook ATP
(internet junio de 1996)
h02a2
17
example, if IPLOT = 3 is used, then only every third point of the old plot file
will be used. The most common (and least tricky) case uses IPLOT = 1,
so that
there are as many output points as there are input points.
The data case is completed by cards for a TACS-only (TACS STAND ALONE) EMTP data
case. There are generally to 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 supplemental variables, although function
blocks are also useful (e.g.,
1/S
for integration of some voltage to give
flux).
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
BENCHMARK DC-46:
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------Postprocess with frequency IPLOT = 1.
|POSTPROCESS PLOT FILE
. Redefinition of Synchronous Power Frequency STATFR
Although the synchronous power frequency STATFR can be defined arbitrarily in the
STARTUP file, 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:
38
Variable STATFR of columns 33-40 is the synchronous power system frequency in
Hertz. Without such a declaration, this will normally be either 50 Hz or 60 Hz,
depending upon contents of the STARTUP file.
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 ------------------------------------------------|-------------------------
Rulebook ATP
New power frequency
(internet junio de 1996)
STATFR = 5.00000000E+01
h02a2
Hz. |POWER FREQUENCY, 50.0,
18
Rulebook ATP (junio 1996 - internet)
H02a3
1
. Request to change Width and Spacing of Time-Step Loop Printout
The dominant printout of the time-step loop is the step number, time, and
variable values which 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 spacing as determined
by variables KOLWID and KOLSEP of the STARTUP file.
Yet such formatting is
important enough that it has been placed under user control at the beginning of
each data case, too, by means of the following request:
39
Parameters:
KOLWID of columns 33-40 is the total column width in characters, including
blanks that separate columns.
KOLSEP of columns 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,
. Request for Relative Allocation of Total TACS Storage
Refer to Section A-1, which provided the first and most common way to allocate
total TACS storage, namely "ABSOLUTE TACS DIMENSIONS".
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.).
There first is the special-request
card, then the data card bearing the 8 proportions, read as 8I8 :
40
Rulebook ATP (junio 1996 - internet)
H02a3
41
In theory, this is simple enough.
But one practical problem with this second
alternative for sizing TACS tables is that the user has no intuitive feel for the
relative space taken by 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
Relative size
20
11
90
15
100
7
20
7
30
3
250
8
300
21
60
28
This applies to translations having integers that are half as long as floatingpoint variables (e.g., INTEGER*4 vs. REAL*8 for computers such as Apollo, IBM,
PRIME, and VAX).
Proportions are a little different for computers that store
floating-point variables in words of the same length as integers (old CDC, Cray,
Burroughs, FPS-164; also single-precision Univac, Honeywell, and DEC PDP10/SYSTEM20), of course.
Interpretation of the two input data cards includes confirmation of just the
first 3 of the 8 input numbers. An illustration follows:
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------Request to define TACS allocation proportions.
|RELATIVE TACS DIMENSIONS
TACS proportions. 1.60E+01 4.00E+00 2.00E+00
|
16
4
2
. "REPLOT"
For Batch-Mode Plotting of Previous Simulations
If a previously-solved data case had miscellaneous data parameter ICAT set to 1
or 2, then the plot data points of that solution were saved on disk as a
permament file. Should the user now (at some later time) wish to do batch-mode
plotting using this data, then 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:
2
Rulebook ATP (junio 1996 - internet)
H02a3
3
42
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
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 only has 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 that separate program, the
following special-request card is used:
43
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
Model Overhead Line by 2nd Order Recursive Convolution
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:
Rulebook ATP (junio 1996 - internet)
H02a3
44
For an example of such usage, see BENCHMARK DC-29. 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 ------------------------------------------------|------------------------2nd-order frequency-dependent line modeling.
|SEMLYEN SETUP
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 end time of the simulation,
t = Tmax.
For a
Monte Carlo ("STATISTICS") study, this will be upon the completion of the final
energization number NENERG.
For those computer systems that allow this
capability (e.g., any flexible minicomputer or microcomputer), such a simulation
can be restarted at any later time by means of the following initial request:
45
Actually, this is only the request to load tables from the disk file that has
already 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 solution 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 to be changed
9999
4
Rulebook ATP (junio 1996 - internet)
H02a3
5
There are 5 choices for the format of the cards to change parameters of switches
or TACS sources, as follows:
1) Cols. 55-60 left blank means that a special, dedicated input structure
for a switch is assumed. In the format below, "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 Tclose 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).
The format is:
46
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 only need key those parameters that he actually wants to alter.
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 source parameter. I.e.,
the user need only key those parameters that he actually wants to alter.
4) Cols. 55-60 keyed with "-1111." ---- like
fields are read. Here, blanks mean zeroes.
2), except that all data
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) for all such change cards,
the end-time TMAX can be altered by means of a "MISCELLANEOUS DATA CARDS" request
(Section A-21).
Then a "TIME STEP LOOP" request (Section A-36) 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 which seem 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 run 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 the EMTP, some of the more complex
Rulebook ATP (junio 1996 - internet)
H02a3
ones can not possibly be honored in practice.
Perhaps the best example is
"FREQUENCY SCAN" of Section A-16. There is no way a hibernating simulation of
the time-step loop can be awakened and directed to perform a series of phasor
solutions (which is what the usage of such a request implies)!
Yet this is
simple and obvious. More insidious are requests that would simply make erroneous
or inconsistent certain parameters of the memory contents that to be restarted.
An example of such a potential disaster is provided by use of the "ABSOLUTE TACS
DIMENSIONS"
request of Section A-1.
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 to 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 for altered switch closing time (Case 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.) :
47
These are the numbers 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 saved. As an
illustration, see the first subcase of BENCHMARK DC-40. The second and third
6
Rulebook ATP (junio 1996 - internet)
H02a3
7
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 the
EMTP with an error stop (a "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 abortive 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 problem energization might be made to converge by better control
of the Newton iteration (see "ZINC OXIDE" of Section II-A-39), 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-mortim 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 conbine the history of more than one preceding
simulation, too. The first uses "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:
48
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 will be 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
with
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
Rulebook ATP (junio 1996 - internet)
H02a3
8
simulation with
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 3rd data subcase:
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------Connect disk file to I/O unit.
|$OPEN, UNIT=2 FILE=DC24A
Continuation of partial previous simulation.
|START AGAIN
3
Completed table restoration.
Reset simulation time T =
Load more Monte Carlo extrema.
3
0
0
|START AGAIN
3
Disconnect disk file from I/O unit.
|$CLOSE, UNIT=2 STATUS=K
Connect disk file to I/O unit.
|$OPEN, UNIT=2 FILE=DC24C
Load more Monte Carlo extrema.
1
2
0
|LOAD MORE SHOTS
1
Terminator for modified switching times.
|
9999
{
Disconnect disk file from I/O unit.
|$CLOSE, UNIT=2 STATUS=K
Connect disk file to I/O unit.
|$OPEN, UNIT=2 FILE=DUM.B
Request preceding 2 miscellaneous data cards.
|MISCELLANEOUS DATA CARDS
Of the 15 possible energization numbers, only the first 3 are confirmed
interpretation, note. The same single "START AGAIN" card is interpreted
only because the first integer
K1
is nonzero.
Note that the
interpretation has the same structure as that for "LOAD MORE SHOTS".
were left zero or blank, no such 2nd interpretation
showing
K1, K2,
would be seen.
by the
twice
second
If K1
and K3
Subnetwork Identification Using All Switches Closed at time zero.
With this special request card, the program will perform automatic subnetwork
identification with all the non-grounding switches closed at time zero.
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 that a
switching operation will occurred. More information on subnetwork identification
can be found in Ref. 8, Vol. XIV, pages CUMA-30 to 33.
49
For an example of such usage, see the second subcase of BENCHMARK DC-38. It is
from the solution to this subcase that the following interpretation was drawn:
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------No nonlinear subnetwork check in DELTAT-loop.
|STEP ZERO COUPLE
Rulebook ATP (junio 1996 - internet)
H02a3
9
Request to Redefine Limit on Number of TACS Warning Messages
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:
50
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:
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,
Request for Transfer to the Time-Step Loop
Used in conjunction with the "START AGAIN" request of Section A-33, the effect
of a "TIME STEP LOOP" request is to awaken the hibernating simulation by a
transfer of control to the time-step loop of UTPF overlay 16. The format is:
51
The interpretation of this request card is illustrated by a line extracted from
the solution to BENCHMARK DC-49:
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------Transfer control to the time-step loop.
|TIME STEP LOOP
User Supplied Switch Times for Monte Carlo Studies
Rulebook ATP (junio 1996 - internet)
H02a3
This special request allows the user to specify the random switch closing/opening
times of a Monte Carlo simulation himself, rather than have the random number
generator of the program determine such times. To use this feature, one prepares
the data the same way as for the regular statistics case, except for the
following two items:
usage.
1) Input a special request card to notify the program of such desired
The format is:
52
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 (set 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 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 if there are more than 5 switches in the
network):
C
1
2
3
4
5
C 34567890123456789012345678901234567890123456789012345678
Arbitrary 80-column comment line to separate energizations
53
10
Rulebook ATP (junio 1996 - internet)
H02a3
11
54
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 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 two 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 closing times from LUNIT8. Since the file
DC24LUNIT8.DAT was constructed using the same closing times as result from
solution of the first subcase, the two solutions should agree exactly.
The
second subcase does have 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 alrert 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 and the user's data file would be totally ignored. Also, he should not be
fooled by the standard 1/3 of a page of Monte Carlo text that precedes the
energizations.
There will be the usual talk about uniform for 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 of the LUNIT8 file.
Calculation of Matrices to Represent Transformers
Rulebook ATP (junio 1996 - internet)
H02a3
12
The calculation of parameters to represent transformers involves the usage of
separate, self-contained programs, such as XFORMER (section XIX-A) or BCTRAN
(section XIX-C). To transfer to such code, the following special-request card is
used:
55
For an example of such usage, see BENCHMARK DC-15.
from this solution appears as follows:
The interpretation extracted
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------Request for transformer [R] +jw[L] computation.
|XFORMER
Another possibility is to transfer control to the BCTRAN program.
special request card is used:
Following
56
For an example of such usage, see BENCHMARK DCNEW-8.
Parameters to Control the ZnO Newton Iteration
Zinc Oxide (ZnO) surge arresters require branch cards as described in Section VE. 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 by the STARTUP file. They then can be redefined by a specialrequest card such as the following:
57
Parameters:
Rulebook ATP (junio 1996 - internet)
H02a3
13
MAXZNO of 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 of 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.E-8
for 60- and 64-bit program versions for CDC, IBM, PRIME, VAX, SEL, and Apollo).
EPWARN of cols. 33-40 is the voltage convergence tolerance for non-fatal
warning message about a "sloppy solution." A blank (zero) data field is taken as
a request for the value Vref / 1000 -- representing one tenth of one percent of
rated voltage, then, which is about the limit of graphical resolution.
EPSTOP of 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 -- or 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) of cols. 49-56 is the maximum per unit (based on the reference
voltage VREF of Section V-E usage) voltage correction at each iteration step. A
blank or zero is given the default value of unity.
ZLIM(2) of 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.
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,,
Exponential Fitting to Represent ZnO Surge Arresters
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 such code, the following special-request card is used:
Rulebook ATP (junio 1996 - internet)
H02a3
58
For an example of such usage, see BENCHMARK DC-39.
from this solution appears as follows:
The interpretation extracted
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------Request to generate Type-92 ZnO branch cards.
|ZNO FITTER
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 (reverse) it:
59
The interpretation of this request confirms the status of variable NMAUTO after
the change. As an illustration, consider the following change from naming to no
names:
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------Toggle auto branch/switch name. NMAUTO = 0.
|AUTO NAME
Conversion of Former Switched-R,L Elements to Type-99 and 98
Years ago (prior to the "M32." update), the 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
antiquated data involving switched-R or switched-L elements into modern,
equivalent, representations can issue the following request:
14
Rulebook ATP (junio 1996 - internet)
H02a3
15
60
This special-request card is to be added before the first miscellaneous data card
of the antiquated data case. Conversion is 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, using
his system editor (assuming card images rather than actual punched cards are
involved).
An example of such conversion is provided by the third subcase of standard test
case BENCHMARK DC-14. The interpretation of the request card for this solution
appears as follows:
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------Convert switched-R,L cards to pseudo-nonlinear.
|CHANGE SWITCH
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 code:
61
An example of such usage is provided by BENCHMARK DC-14. It was from the first
subcase of this solution that the following interpetation was drawn:
Rulebook ATP (junio 1996 - internet)
H02a3
16
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------Request for definition of data base modules.
|DATA BASE MODULE
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:
62
For an example of such usage, see BENCHMARK DC-3 for any virtual computer (e.g.,
Apollo). It was from this solution that the following interpetation was drawn:
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------Toggle plot data storage choice. LUNIT4 = 4.
|DISK PLOT DATA
Punch 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:
63
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.
following illustrative interpretation was taken from that solution:
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
The
Rulebook ATP (junio 1996 - internet)
H02a3
17
C ------------------------------------------------|------------------------Request to make Type-96 hysteresis branch cards. |HYSTERESIS
Pass U.M. Output Variables to Type-92 TACS Sources
It is possible to pass any U.M. output variable to TACS, provided two simple
rules are observed. First, 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:
64
Note that the U.M. variable being passed must be a U.M. output variable, but that
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 may have concluded that there is a temporary
limitation to just a single machine.
But limitations are not actually this
restrictive.
In fact, the connection logic will merely match a Type-92 source
with the first U.M. output variable having the requested name. The only usage
that is impossible is passing of the same U.M. variable from two different
machines to TACS, then.
Later, if there is adequate demand, this limitation
obviously could be provided.
But for now (February, 1987), we are beginning
slowly, with the simplest possible logic. Another temporary limitation has to do
with initial conditions: there will be no transfer 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 always free to manually supply the initial
conditions for the TACS variables, 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
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 solved in pieces, generally by parallel processing.
Reference [52] provides a detailed explanation. Well, access to the supporting
program that displays and manipulates the central statistics file PARALLEL.LIS
is by the request:
Rulebook ATP (junio 1996 - internet)
H02a3
65
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 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:PARALLEL.LIS
|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 the EMTP.
Also, it allows for computer-dependent extensions to the universal features
described in Section XIX-B.
Name the Central Status File of Parallel "STATISTICS"
The user of "OBSERVE PARALLEL MONTE CARLO" ("OPMC" in abbreviated form) must name
PARALLEL.LIS, his central file of summary statistics. This name, up to 40 bytes
in length, is to follow the declaration:
66
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 casesensitive 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.
An example of the just-explained declaration is provided by BENCHMARK DC-48, It
was from this solution that the following interpretation was drawn:
18
Rulebook ATP (junio 1996 - internet)
H02a3
19
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
Initialize the Random Number Generator of "STATISTICS"
A single floating-point number is used to initialize the random number generator
of Monte Carlo ("STATISTICS") studies.
The experienced user can define this
seed, SEEDRN, using the following request:
67
. 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:
68
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
"Leuven##!" unfortunately has been lost from the right:
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------Override USERID of STARTUP with "Leuven".
|USER IDENTIFICATION
Rulebook ATP (junio 1996 - internet)
H02a3
Truncate Output Lines after Formation Using Width KOL132
Normally, the STARTUP file will supply the line width for LUNIT6 output text
using variable KOL132. But the user might want to truncate the output after it
has been formed to this width 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:
69
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
Switch Between 'FORMATTED' & 'UNFORMATTED' for "LOAD MORE SHOTS"
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 is
required.
But before loading a 'FORMATTED' file of extrema, the following
request must be used to inform the program of the mode change:
70
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 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
Use Long-Line Formulas for Constant-Parameter Distributed Lines
20
Rulebook ATP (junio 1996 - internet)
H02a3
21
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:
71
An example of such usage can be found in the second subcase of BENCHMARK DC-11.
Illustrative interpretation comes from the solution of this data set:
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------Do not lump R for constant-parameter distributed. |EXACT PHASOR EQUIVALENT
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.
Assuming that the plot file already is connected to I/O unit number LUNIT4 (see
STARTUP), the user request for such positioning is:
72
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" request, a complete, self-contained plot file can
be produced by the "START AGAIN" simulation. An example can be found in the 4-th
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
Calculation of Matrices to Represent Transformers
Rulebook ATP (junio 1996 - internet)
H02a3
22
The calculation of matrices [R] and [L] or [A] and [R] to represent arbitrary
transformers is described in the separate Section XIX-C. Whereas the "XFORMER"
request of Section II-A-38 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 special-request card:
73
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
Convert SATURABLE transformer cards to [R], [L]
The calculation of matrices [R] and [L] to provide a linear representation for a
saturable TRANSFORMER is described in the separate Section XIX-J. The specialrequest word "CHANGE TRANSFORMER" provides the transfer, as illustrated by
BENCHMARK DC-67. The output of this solution illustrates interpretation of the
transfer:
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------Convert saturable TRANSFORMER into [R], [L].
|CHANGE TRANSFORMER
Combination of 2 or more partial Monte Carlo studies
The "LOAD MORE SHOTS" request is used to read from a disk file of extrema that
was produced by a preceding Monte Carlo solution.
For details, see "START
AGAIN" in Section II-A-33.
Define the INTEGER/REAL variable split of new TACS
The new TACS (unavailable before 1989) stores integer and floating-point data in
a single vector that is sized by List Size 28 of "VARDIM". The division of the
single storage into integer and floating-point portions can be controlled by the
user by means of the following request:
74
Variable RATIO is the integer to floating-point ratio for the allocation.
the absence of such a declaration, the value 2.0 will be used.
In
Rulebook ATP (junio 1996 - internet)
H02b
1
II-B Miscellaneous Data Cards, Floating-point and Integer
There are two types of miscellaneous data cards: floating-point and
integer. Both card types will be explained in the remainder of section II-B.
Further, there are also extensions to these miscellaneous data cards. These
extensions will be explained in section II-C.
floating-point miscellaneous data card
The first non-comment card that is not recognized as being any of the
preceding special-request cards will be assumed to be the floating-point
miscellaneous data card, which has the following format:
75
Parameters:
DELTAT : the size of the time step of the numerical integration, in
seconds. A simulation will be calculated at discrete moments of time that
have this time separation. Take care of the Nyquist criterion: the time
step preferably should be 1/2 ... 1/10 of the smallest time constant of the
system one wants to simulate. Whenever nonlinear elements are present in
the network under study, an even smaller time step might be advisable.
TMAX : the end time of the study, in seconds.
XOPT : a value that indicates whether it is inductance in millihenries or
inductive reactance in ohms that is to be keyed on linear branch cards.
1) If XOPT = 0, inductances are to be keyed in millihenries.
2) If XOPT > 0, then values are to be in ohms at frequency
XOPT (in
Hertz). In either case, remember that this choice of the miscellaneous
data card can be changed at any point of data input by means of the first
argument of a $UNITS card.
COPT : a value that indicates whether it is capacitance in microfarads or
capacitive reactance in micromhos that is to be keyed on linear branch
cards.
1) If COPT = 0, capicitances are to be keyed in microfarads.
2) If COPT > 0, then values are to be in micromhos at frequency COPT (in
Hertz). In either case, remember that this choice of the miscellaneous
Rulebook ATP (junio 1996 - internet)
H02b
data card can be changed at any point of data input by means of the
second parameter of a $UNITS card.
EPSILN : 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 which is the most common, 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 used.
TOLMAT : the near-zero tolerance that is used to test singularity of the
complex admittance matrix [Y] of the steady-state, phasor solution.
A
blank or zero value means that a value equal to that of EPSILN will be
used. Please note that TOLMAT can NOT be specified in the STARTUP file.
TSTART : The beginning time of a simulation, in seconds. Normally, TSTART
will be zero or blank. Only when the "START AGAIN" feature is in use (see
section II-A-33), it can be usefull to specify TSTART > 0 (e.g. put the
value equal to TMAX of a previous data case you want to continue). Details
regarding final table dumping, etc. can be found in DC49.
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:
76
Parameters:
IOUT 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 "FREQUENCY SCAN" usage,
it is output within the loop over frequencies that is controlled, rather
than the loop over time, of course.
IPLOT gives the frequency for saving solution points of the time-step loop
for purposes of later plotting. 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 sawtoothed oscillation would go unnoticed.
2
Rulebook ATP (junio 1996 - internet)
H02b
3
IDOUBL 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. The name "TERRA "
(as read in from the
STARTUP
file) is used for ground instead of six
blank characters, to improve readability. Ordering of the rows is in order
of input, except for the final row, which applies to ground (node number
one, which is labeled "TERRA FIRMA").
KSSOUT controls the printout of the steady-state phasor solution. 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:
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 controls printout of extrema at the completion of the simulation.
Keying a zero or blank will suppress such computation and output, whereas
the value unity will produce it.
IPUN 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 to accomplish the same thing.
MEMSAV controls the dumping of EMTP memory onto disk at the end of the
simulation for subsequent use with the "START AGAIN" request of Section
II-A. Key "1" if such memory saving is desired, or zero or blank if it
is not. For the single, deterministic simulation, the table saving is done
at time
TMAX
(floating-point miscellaneous data parameter).
For Monte
Carlo ("STATISTICS") studies, this is upon completion of energization
number NENERG (integer miscellaneous data parameter). Memory saving is a
powerful and useful tool of the production user. However, be warned that
such table saving and later use may be computer dependent, so information
about the computer being used should be consulted.
The name of the
resultant tables is determined by a $OPEN declaration on LUNIT2 that
must precede such usage. Most commonly the $OPEN is placed immediately
before the blank card ending output requests.
Also, once the tables are
complete, it is the user's responsibility to disconnect them (use $CLOSE
at the beginning of following plot cards). Any user of this feature should
be further warned that a later awakening of the hibernating simulation is
guaranteed only if the same program version is saved and is used for the
following
"START AGAIN"
simulation.
For an illustration involving a
single, deterministic simulation, see
BENCHMARK DC-32
and
DC-49.
For
such usage with a Monte Carlo study, see BENCHMARK DC-24 and DC-40.
A final comment is about Monte Carlo studies.
If some study is to be
solved in two or more independent pieces that are later to be combined,
Rulebook ATP (junio 1996 - internet)
H02b
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 is useless by itself, but 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,
since otherwise, the user would just be repeating the same energizations (a
waste of computation).
For an illustration involving Monte Carlo
simulations, see BENCHMARK DC-24 and DC-40.
ICAT 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.
For most computers, the disk file in question will be internally named
based on the date and time of day when the simulation began. See the plot
file heading for such details.
Such details are controlled by
installation-dependent SUBROUTINE SYSDEP, so it is not possible to be much
more specific. See details for the computer of interest.
NENERG
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 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-request card (see section II-A-12).
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
4
Rulebook ATP *junio 1996 - internet)
H02c
1
II-C. Specially-Requested 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 cards. 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).
"STATISTICS" Miscellaneous Data Card for Actual 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:
77
Parameters:
ISW 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, please refer to section II-C-3,
describing the special feature of DICE TESTING.
ITEST
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;
a value "3" means that such an addition will be made only to random opening
(not closing) times.
For details on these different switch types, we refer to section VI.B.
IDIST chooses between the two types of dice (distribution laws) 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 ITEST parameter),
which is assumed always to follow a uniform distribution.
Rulebook ATP *junio 1996 - internet)
H02c
IMAX 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 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, DC-50, and
DCPRINT-13 all use IDICE = 1.
KSTOUT 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 explicitely. A
blank or minus one ("-1") will suppress such extra output.
KNTRPT 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 (not yet operational)
will complete the data case. For an illustion, see the 4th data subcase of
BENCHMARK DC-40.
NSEED
controls whether or not a Monte Carlo simulation is repeatable,
should it ever be rerun using the same computer. A blank or zero means that
that every solution will be different (i.e., no repeatability), whereas
unity will result in identical answers every time the data case is solved on
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. But for repeatability (value unity), a constant
seed is used.
2
Rulebook ATP *junio 1996 - internet)
H02c
3
Monte Carlo studies are important enough, and tricky enough, so that each
should be solved separately using a separate disk file. The stacking of two or
more data cases, of which 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 tabledumping control TENERG.
Let the 2nd subcase of BENCHMARK DC-24 serve 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
"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:
78
Parameters:
ISW : Same as for preceding "STATISTICS" use.
ITEST controls whether switch times
to be specified on columns 15-24 of
the SYSTEMATIC switch card are to be Tbeg or Tmid (see section VI.B.2).
Use blank or zero if Tmid is to be used,or unity if Tbeg is to be specified.
IMAX : Same as for preceding "STATISTICS" use.
KSTOUT : 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:
Rulebook ATP *junio 1996 - internet)
H02c
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------Statistics data.
1
1
0
0
0
0 |
1
1
{ I
"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 original card of
Section II-C-1:
79
ISW : The "4444" is a request for dice testing.
ITEST 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 : The same as for Section II-C-1 above.
NSEED : The same as for Section II-C-1 above.
Concerning the rest of the data case, it should be legal
card ending switch cards.
Only the switch cards are
branch cards are arbitary as long as no error results
cards are read. Finally, there should be a "BEGIN NEW
the bottom,
since this will be searched for just as
following an EMTP error message.
through the blank
actually used, so
before the switch
DATA CASE" card at
would be the case
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
4
Rulebook ATP *junio 1996 - internet)
H02c
5
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 is skipped.
There is no new interpretation for the miscellaneous data card of dice
testing. Refer to the preceding Sections II-C-2 or II-C-3 for illustrations.
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 advances.
One way has
already been documented in Section II-A: use of a "CHANGE PRINTOUT FREQUENCY"
request. Another is to key integer miscellaneous data parameter IPUN (cols. 4148) as "-1", and append the following card:
80
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(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 Section II-A-12 (a
"DIAGNOSTIC"
request);
Rulebook ATP *junio 1996 - internet)
2. IPR(1:4)
H02c
of Section II-A-3 ("ALTERNATE DIAGNOSTIC PRINTOUT").
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 (nondiagnostic) 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
6
Rulebook ATP *junio 1996 - internet)
H04
1
IV LINEAR BRANCH CARDS
Introduction
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
(type -1,-2,-3,...)
* constant-parameter line models
(distortionless or lumped resistance or exact PI)
transposed = Clarke model
untransposed = K.C.Lee model
* double-circuit constant-parameter line models
* frequency dependent line model (JMARTI)
* recursive-convolution line model (SEMLYEN)
matrix
- 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 an high-precision
format exist. This will be explained on relevant places.
For all mutually coupled, lumped elements, both an RL as well as an AR
notation exist. This will be explained on 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.
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. This means that branch cards have to
follow either the miscellaneous data cards (when no TACS HYBRID is active) or the
TACS card grouping (whenever TACS HYBRID is in use). 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. Do not forget to terminate the grouping of branch cards
by a blank card or a card containing the text
"BLANK card ending 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.
Different formats
Rulebook ATP *junio 1996 - internet)
H04
The "$VINTAGE, 1"-card, which is honoured by most computer systems, 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
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 distinct 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
withheld 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 distinct 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 then two parallel branches,
users' inventivity 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.
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 branched being referenced to previously should be
defined. 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.
2
Rulebook ATP *junio 1996 - internet)
H04a
1
IV-A. Branch cards for uncoupled, lumped series RLC branches (type 0)
Application
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.
81
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.
SPECIAL USAGE:
The uncoupled, lumped series RLC element can be used for 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.
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.
Rulebook ATP *junio 1996 - internet)
H04a
Next, an explanation of all parameters involved will follow. Indeed, the
meaning of the parameters is not dependent on the format being used.
82
NORMAL CARD FORMAT ($VINTAGE, 0)
83
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).
HIGH-PRECISION CARD FORMAT ($VINTAGE, 1)
84
FREE FORMAT
2
Rulebook ATP *junio 1996 - internet)
H04a
3
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 each field by comma's (i.e. last sign 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 comma's before column 26
(delimiting one type field and four node name fields) and a total of
eight comma's 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 comma's is
necessary.
Parameters
Following
formats.
is
an
explanation
of
the
parameters
used
in
the
above
card
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
(TERRA).
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. Except in case of free-format usage, values
always have to be right adjusted.
L: Inductance value (in mH or Ohms, depending on XOPT).
- an inductance L: mH (XOPT = zero or blank)
- a reactance 2[Equation: pi]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[Equation: pi]f*C: µmhos (COPT = f)
OUTPUT OPTION: The options for printing and/or plotting have to be
specified in this area. There are four output possibilities:
'1' : branch current;
'2' : branch voltage;
'3' : branch current and branch voltage;
'4' : branch power and energy consumption.
Remarks:
Rulebook ATP *junio 1996 - internet)
H04a
1)
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,
on several places, to switch the units of the capacitors and inductors
any time. The use of the $UNITS card is further explained in section ID-15.
2)
At least one value of R, L and C per branch must be non-zero.
3)
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.
4)
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.
5) 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.
6) A low resistance, being used for current sampling for example, may not be
taken lower then 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 tolarance 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[Equation: pi]f*L.
. For a capacitor, this is (2[Equation: pi]f*C)-1.
4
Rulebook ATP *junio 1996 - internet)
H04a
5
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.
7) 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
R =
16L
DELTAT
(L in Henry, DELTAT in sec, R in Ohm)
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:
R =
DELTAT
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.
Examples
C
1
2
3
4
5
6
7
8
C 345678901234567890123456789012345678901234567890123456789012345678901234567890
VOLT-A10-A
$VINTAGE, 1
$UNITS, 0, 0
1.
123..21E-3
Rulebook ATP *junio 1996 - internet)
H04a
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
The examples in the above figure are representing the branches following
below. Presume that XOPT and COPT
are set to 0 respectively 60 (Hz) in the
miscellaneous data cards. 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
nodenames VOLT-B and 10-B will use now the reference branch with nodenames VOLT-A
and 10-A. Therefor 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.
6
Rulebook ATP *junio 1996 - internet)
H04b
1
85
IV.B Branch cards for mutually coupled RLC elements (type 1,2,3)
Applications
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.
86
This class of branches thus provides for the representation of lumpedelement 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 capacitance from branch i to branch k.
2
Rulebook ATP *junio 1996 - internet)
v k - v m = [L]
H04b
dikm
+ [R] ikm
dt
1
dv
[C] k + ikm
2
dt
1
dv
= [C] m - ikm
2
dt
ik =
im
87[
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.
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 modelling should generally be used
only as a last resort, where more sophisticated models (e.g. distributedparameter models) are believed to be inadequate. Note that this is
not the
CASCADED PI option referred to in section IV.F; cascaded PI uses the long-line
equivalent, which is valid only for steady state, at one specific frequency.
The supporting routine LINE CONSTANTS (section XXI-E) or CABLE CONSTANTS
(section XXIII-B) 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 modelled using PI-equivalents. Because most
transformers have a small P.U. excitation current, the admittance matrix is
nearly singular. The leakage impedance is rather low and can be obtained by
substracting the mutual impedance from the self-impedance. Because off the fact
that the admittance matrix is ill-conditioned, the leakage impedance can get lost
in the magnetizing impedance. Therefor, 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 nonexisting (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 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
succesfully to derive frequency dependent transformer models, where one needs to
take into account the interwinding capacitances, as well as the capacitances to
Rulebook ATP *junio 1996 - internet)
H04b
3
ground. At this moment (November 1990), no related automatic data generator is
available within EMTP.
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 modelling.
88
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-infiniteimpedance series branches and ground all conductors at the far end.
89
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.
Card format
First, the three different card formats will be discussed:
. normal format ($VINTAGE, 0)
. high-precision format ($VINTAGE, 1)
Rulebook ATP *junio 1996 - internet)
4
H04b
. free format.
For this card-type, 2 different notations exist: the RL-notation and the ARnotation. The card formats first will be explained for the RL-notation (normal
usage). Next, the AR-notation will be discussed.
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:
90
NORMAL CARD FORMAT ($VINTAGE, 0)
91
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)
Rulebook ATP *junio 1996 - internet)
H04b
5
92
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 each field by comma's (i.e. last sign 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 comma's before column 26
(delimiting one type field and four node name fields) and a total of
eight comma's 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 comma's are needed.
With these rules, only column 27 must be determined as position information.
On the other hand, a painstaking count of comma's is necessary. See section
IV.B.3 (remarks) for further usage.
AR notation
In some cases, the [L]-1-matrix is ill-conditionned or singular, so [L] does
not exist. Therefor 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:
93
In this case, we use the following equation:
Rulebook ATP *junio 1996 - internet)
6
H04b
dv
= [L ]-1 v - [L ]-1 [R]i
dt
Now we have to be carefull 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.
Remarks:
- This notation can not be used for
coupled phases (minimum two).
single-phase situations;
only for
- Before using the AR notation, the program automatically sets XOPT as
0.1591549 (XOPT=1/2π). In this case ω = 1. COPT remains unchanged. The
values of the corresponding term of the inverse of L are now to be specified
in Henry-1. 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 extention format
($VINTAGE, 1) and the free format.
Parameters
Following
formats.
is
an
explanation
of
the
parameters
used
in
the
above
card
ITYPE: Numbers 1 up to 40 can be used to express each phase of the PIequivalent. 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 ohms.
L: Inductance value (in mH or Ohms, depending on XOPT).
- an inductance L: mH (XOPT = zero or blank)
- a reactance 2[Equation: pi]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)
Col80 punch: only value 2 is allowed, only on the first two cards.
Remarks:
Rulebook ATP *junio 1996 - internet)
H04b
7
1) 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.
2) 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:
94
b) for $VINTAGE, 1:
95
3) 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 therefor 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.
Rulebook ATP *junio 1996 - internet)
8
H04b
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 34567890123456789012345678901234567890123456789012345678901234567890123456789
0
$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 .166
2
411-A 21-A
1.002.0984-.0180 0.942.1248-.0101 0.902.0398-.005
3
1.41 8.334 .164
511-B 21-B
0.942.1248-.0101 0.892.5064-.0104 0.862.6454-.008
7
0.972.8586-.0289 1.239.1392 .1626
611-C 21-C
0.902.0398-.0053 0.862.6454-.0087 0.833.1597-.014
2
0.912.2823-.0088 0.863.4218-.0273 1.16 9.518 .166
2
C
1
2
3
4
5
6
7
8
C 34567890123456789012345678901234567890123456789012345678901234567890123456789
0
USE AR
$VINTAGE, 1,
1BUS1_RBUSH
2BUS2_RBUSL
3BUS1_SBUSH
4BUS2_SBUSL
5BUS1_TBUSH
6BUS2_TBUSL
USE RL
$VINTAGE, 0,
$UNITS,
{do not forget this!
2.4311266503345
-29.04015078715
361.43763967638
.06629545237001
-.7919085305828
2.4311266503345
-.7919085305828
23.900085059572
-29.04015078715
361.43763967638
.06629545237001
-.7919085305828
.06629545237001
-.7919085305828
2.4311266503345
-.7919085305828
23.900085059572
-.7919085305828
23.900085059572
-29.04015078715
361.43763967638
-1,
1.369233463069
0.0
.0095961038351
0.0
0.0
1.369233463069
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
-1
Rulebook ATP *junio 1996 - internet)
H04b
9
C
1
2
3
4
5
6
7
8
C 34567890123456789012345678901234567890123456789012345678901234567890123456789
0
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:
[R] = 
Ω
1.41


0.97.1.23



0.91,0.86,1.16 


1.00,0.94,0.90,1.41



0.94,0.89,0.86,0.97,1.23



0.90,0.86,0.83,0.91,0.86,1.16 
7
[ ωL] = 
Ω
8.3340 


2.8586,9.1392 



2.2823,3.4218,9.5180 



2.0984,2.1248,2.0398,8.3340 


2.1248,2.5064,2.6454,2.8586,9.1392,



2.0398,2.6454,3.1597,2.2823,3.4218,9.5180 
[C] = 
 µ [F]
0.1640



-0.0289,0.1626 



-0.0088,-0.0273,0.1662 



-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 
8
Remark the symmetric structure of each matrix and interprete 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:
[L ]-1 = 
 H -1
2.4311266503345



-29.04015078715,316.43763967638



.06629545237001,-.7919085305828,2.4311266503345 



-.7919085305828,23.900085059572,-29.04015078715,361.43763967638


.06629545237001,-.7919085305828,.06629545237001,-.7919085305828,2.4311266503345 



 -.7919085305828,23.900085059572,-.7919085305828,23.900085059572,-29.04015078715,361.43763967638 
9
10
Rulebook ATP *junio 1996 - internet)
H04b
[R] = 
Ω
1.369233463069



0.0,.0095961038351



0.0,0.0,1.369233463069  10



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,
transformer needs this format to be as accurate as possible.
because
the
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.
Rulebook ATP *junio 1996 - internet)
H04c
1
IV-C. Branch cards for mutually coupled RL elements
(type 51,52,53,...)
Application
GENERAL USAGE:
This class of branches provides for the representation of lumped-element,
mutually-coupled R-L branches.
96
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 then 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 substracting the mutual
impedances from the self impedances, are very badly and get 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.
SPECIAL USAGE:
1) 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 Z s
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 store the
entire matrix (or even the lower-diagonal part). It is more convenient to specify
only the associated zero- and positive-sequence values (R 0,L0) and (R1,R2) of a
purely diagonal matrix.
Rulebook ATP *junio 1996 - internet)
2

 _ Fortesque _
,
,
Z
Z
Z
s
m
m




 Z m , Z s , Z m
 , , 
Z m Z m Z s
H04c


 Z 0 ,0,0 

 11
0, Z1 ,0 
 0,0, 
Z 1

The relation between phase values (Zs,Zm) and sequence values (Z0,Z1) is very
simple;
Z0 = Z s + 2 Z 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 STAND ALONE.
Note, however that data manually should 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.
2) 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.
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.
Phase values
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:
Rulebook ATP *junio 1996 - internet)
H04c
3
97
NORMAL CARD FORMAT ($VINTAGE, 0)
To specify N mutually coupled R-L elements, the following format is used:
98
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 grid shows the input
structure.
99
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 each field by comma's (i.e. last sign of the variable CHRCOM
in the STARTUP file);
Rulebook ATP *junio 1996 - internet)
4
-
-
H04c
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 comma's before column 26
(delimiting one type field and four node name fields) and a total of
six comma's 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 exceeded, the continuation symbol (fifth character
of CHRCOM of STARTUP, usually "$") must be used. On such card, no
extra comma's are needed.
With these rules, only column 27 must be determined as position information.
On the other hand, a painstaking count of comma's 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.
AR notation
In some cases, the [L]-1-matrix is ill-conditionned or singular, so [L] does
not exist. Therefor 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:
100
In this case, we use the following equation:
dv
= [L ]-1 v - [L ]-1 [R]i 13
dt
Now we have to be carefull 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.
Sequence values
When using the sequence value formulation, only one card format exists:
Rulebook ATP *junio 1996 - internet)
H04c
5
101
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.
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 limited up to 40. Continuation cards must have blank ITYPE
fields.
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.
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 ohms 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:
6
Rulebook ATP *junio 1996 - internet)
H04c
a) for $VINTAGE, 0:
102
b) for $VINTAGE, 1:
103
- 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 only one supporting routine that can be used to generate the
data in the proper input format:
Rulebook ATP *junio 1996 - internet)
H04c
7
XFORMER: to derive [R] and [[Equation: omega]L] for single-phase
transformers in free format, RL notation (phase value formulation).
See also section XIX.A.
SEQUENCE VALUES USAGE
ITYPE: Specifies N phases by numbering 51, 52, 53, ...(50+N) in this
field. N is limited up to 40.
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.
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 (R1, L1) 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 ohms 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
a
very
unbalanced,
erroneous
representation.
Examples
Next example will show the use of normal mutually coupled RL elements. We'll
use the output of the supporting routine XFORMER (see section XIX-A) which format
is a high-precision and free format.
C
8
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456789
0
51,H1
,
, , ,
0.9272618817281E-01 ,
0.3493188082966E+03 , ,,,,
52,L1
,
, , ,
-0.5411077293636E-01 ,
0.2037410770117E+03 $
0.3157657837292E-01 ,
0.1189555285801E+03 , ,,,,
C
1
2
3
4
5
6
7
8
C 34567890123456789012345678901234567890123456789012345678901234567890123456789
0
A second example shows the special case of sequence values:
Rulebook ATP *junio 1996 - internet)
8
H04c
104
The sequence parameters for example could be:
R0 = 4.5 ohm
L0 = 87.6 mH
C
8
1
2
R1 = 3.1 ohm
L1 = 66.4 mH
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456789
0
51
N1A
N2A
4.5
87.6
52
N1B
N2B
3.1
66.4
53
N1C
N2C
C
1
2
3
4
5
6
7
8
C 34567890123456789012345678901234567890123456789012345678901234567890123456789
0
Rulebook ATP *junio 1996 - internet)
H04f
1
IV.F. Branch input using "CASCADED PI" feature
IV.F.1. Applications
1 GENERAL USAGE
In Section IV.B we already discussed the multi-phase nominal PI-equivalent.
This appeared to be a good model to simulate transient behaviour 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.
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 [Equation: <=] 0 on miscellaneous data card)
at that specific frequency FREQCS (see IV.F.2-1: Cascaded PI header card)
are honored. The frequency of the type-14 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.
105
The mathematical modelling 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 longline 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 components between the sending end and the last component
read. This is shown in the next figure.
Rulebook ATP *junio 1996 - internet)
2
H04f
106
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.


 Y SS Y SR  14


Y RS Y RR 
Remarks:
- The number of elements Ykm 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.
1) 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.
2) Second and later sections can each consist of up to four types of subcomponents, 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].
When using diagnostic (see benchmark DCPRINT25), the program also will
generate a phasor branch admittance matrix. Only the values are obtained
correctly: the format has to be modified manually according to the specifications
explained in section IV.G.
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.G). 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" modelling feature as part of an EMTP
data case, the following classes of data are involved in the order indicated:
Rulebook ATP *junio 1996 - internet)
H04f
3
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 PIcircuit.
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:
107
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 charactarize 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):
108
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
4
Rulebook ATP *junio 1996 - internet)
H04f
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.
4 LINE POSITION CARD
For the other segments, the general format of the line position card, which
is shown below, can be used.
109
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:
110
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 axtra nodes, including local ground.
Following format will be used:
111
7 CHANGE OF LINE PARAMETERS [R], [L] and [C]
Rulebook ATP *junio 1996 - internet)
H04f
5
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 then, 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.
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.
112
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 permissable 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 storagesaving 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 2[Equation: pi]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[Equation: pi]f*C: µmhos (COPT = f)
Remarks:
1) Supporting routines LINE CONSTANTS or CABLE CONSTANTS can be used as data
generators.
Be sure to select output that corresponds to the long-line
6
Rulebook ATP *junio 1996 - internet)
H04f
equivalent. Further, be sure to run the supporting routines at the correct
frequency (FREQCS on cascaded PI header card).
2) 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.
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.
4) At least one of the matrices [R] and [L] must be nonzero. Matrix [C] may
be zero. Specifically, [Equation: #[#r[R]#] + #s[j] omega #[#r[L]#]] must be
non-singular.
5) Matrices [R], [L] and [C] are symmetric, so they are only need to be
specified on and below the diagonal. The following format applies:
113
6) 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.
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).
Rulebook ATP *junio 1996 - internet)
H04f
7
MSER = -1: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.
Remark:
1) If MULTIP is set greater then 1 (default is 1 or blank), so that there
are more then 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:
The first section preceeded 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 preceeded by a R-L-C connection would have MSER=-1.
3) 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.
5 SERIES R-L-C BRANCH 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[Equation: pi]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[Equation: pi]f*C: µmhos (COPT = f)
Rulebook ATP *junio 1996 - internet)
8
H04f
Remark:
1) If a short circuit is desired, simply do not enter a data card of this
class for that conductor.
2) 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".
3) At least one of the parameter values R, L or C must be nonzero.
4) If the branch has no R, L or even C, just leave the corresponding field
blank. In case of a capacitor, the EMTP will interprete this as a short
circuit, where normally a zero value capacitor has an infinite impedance.
5) The end of these kind of 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[Equation: pi]f*L: ohms (XOPT : f)
C: Capacitance value (in µF of µMho's, depending on COPT).
- a capacitance C: µF (COPT = zero or blank)
- a susceptance 2[Equation: pi]f*C: µmhos (COPT = f)
Remark:
1) At least one of the parameter values R, L or C must be nonzero.
2)
If the branch has no R, L or even C, just leave the corresponding field
blank. In case of a capacitor, the EMTP will interprete this as a short
circuit, where normally a zero value capacitor has an infinite
impedance.
3) The end of these kind of branches is indicated by a blank card.
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[Equation: pi]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[Equation: pi]f*C: µmhox (COPT = f)
Remarks:
1)
2)
If this card
contain value
At least one
may be zero.
singular.
has to be added, the associated line-position card must
"1" in field "MSECT".
of the matrices [R] and [L] must be nonzero. Matrix [C]
Specifically, [Equation: [R] + j omega [L]] must be non-
Rulebook ATP *junio 1996 - internet)
3)
H04f
9
Matrices [R], [L] and [C] are symmetric, so they only need to be
specified on and below the diagonal. The following format applies:
114
4) 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
processed.
all
sections,
making
up
the
line,
are
IV.F.4. Examples
In order to show the power of this feature, let us compare the input files
for a given configuration:
1) manual setup (benchmark DC10)
2) 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 intermedite nodes are accessible too!!
1 MANUAL EMTP DATA SETUP
BEGIN NEW DATA CASE
C
BENCHMARK DC-10
C
Companion to "CASCADED PI" test of
C
Use batch-mode solution only, since
C
and then the zero DELTAT will result
0.0
0.0
60.
1
1
1RA1
1A1
.877 8.40 .1628
2RB1
1B1
.747 4.14-.0252
3RC1
1C1
.735 3.47-.0067
11A1
2A1
RA1
1A1
21B1
2B1
31C1
2C1
02B1
3B1
13.1449.071
12C1
4C1
RA1
1A1
23A1
4A1
33B1
4B1
04C1
5C1
13.14
04A1
5A1
13.1449.071
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
preceding data case.
Same answer
SPY sets TMAX to nearly infinity,
in an error stop.
.852
.723
8.43 .1559
4.17-.0277
.829
8.46 .1571
3
1
2
10
Rulebook ATP *junio 1996 - internet)
H04f
25C1
35A1
6A1
6B1
6C1
7A1
7B1
7C1
6C1
6A1
7A1
4B1
5B1
7B1
4C1
5C1
7C1
4A1
5A1
7G1
2B1
3B1
7G1
2B1
3B1
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 --------------+-----------------------------C From bus name | Names of all adjacent busses.
C --------------+-----------------------------C
RA1
|1A1
*
C
1A1
|RA1
*2A1
*
C
RB1
|1B1
*
C
1B1
|RB1
*2B1
*
C
RC1
|1C1
*
C
1C1
|RC1
*2C1
*
C
2A1
|1A1
*
C
2B1
|1B1
*3B1
*
C
2C1
|1C1
*4C1
*
C
3B1
|2B1
*4B1
*
C
4C1
|2C1
*5C1
*
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
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+02 -138.975087 -3.0120669E+02 -2.6206500E+02 3.0384
C 4A1
5A1
2.9415954E+00
92.386571 -1.2249239E-01 2.9390439E+00
PRINTER PLOT
BLANK card ending plot cards
BEGIN NEW DATA CASE
BLANK
2 CASCADED PI MODELLING
BEGIN
C
C
C
NEW DATA CASE
BENCHMARK DC-9
Illustration of many "CASCADED PI" features.
See DCPRINT-25 if any
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-.0067 .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
Rulebook ATP *junio 1996 - internet)
H04f
11
1
2
3
-1
13.1449.071
-1
13.1449.071
-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.
-110.0
-.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 (none allowed for CASCADED PI use, actually)
BEGIN NEW DATA CASE
BLANK
IV.G. Phasor branch [Y] input if no transient simulation
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 a DIAGNOSTIC card (column 26, with minimum value = 3) in the input of the
CASCADED PI case. Beware, since the output is not 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.F.). Like for
CASCADED PI, some important limitations exist:
- the phasor branch solution uses the long-line equivalent (not the nominal PIequivalent). 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 14-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
12
Rulebook ATP *junio 1996 - internet)
H04f
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.
Card format
Again, two different formats exist:
. normal format ($VINTAGE, 0)
. high precision format ($VINTAGE,1)
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.
Rulebook ATP (junio 1996 - internet)
H04g
1
NORMAL CARD FORMAT ($VINTAGE, 0)
1
2
3
4
5
6
7
8
1 2 3 45 6 7 8 9 0 1 23 4 5 67 8 9 01 2 3 45 6 7 89 0 1 23 4 5 67 8 9 01 2 3 45 6 7 89 0 1 23 4 5 67 8 9 01 2 3 45 6 7 89 0 1 23 4 5 67 8 9 0
node names
ITYPE
BUS1
I2
reference br.
elements (k, m)
elements (k, m+1)
elements (k, m+2)
BUS2
BUS3
BUS4
TR
TX
TR
TX
TR
TX
A6
A6
A6
E6.2
E12.2
E6.2
E12.2
E6.2
E12.2
A6
115
HIGH PRECISION FORMAT ($VINTAGE, 1)
The same format as in section IV.C. will apply here.
116
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.
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.
Unlike previous cases, XOPT always should be put equal to 1/(2π), in order to
avoid scaling. The value of COPT has no importance for type 51,52,53 cards.
note:
Rulebook ATP (junio 1996 - internet)
H04g
TR and TX are the table headers, as obtained by the data generator (CASCADED
PI-feature, using DIAGNOSTIC output in overlay 3 (=column 26). The minimum
value for IPRSUP(3) = 3).
Remarks
1) 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:
a) for $VINTAGE, 0:
117
2
Rulebook ATP (junio 1996 - internet)
H04g
3
b) for $VINTAGE, 1:
118
2)
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).
3)
There must be added two $UNITS cards.
a) The first one "$UNITS, .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 than be
equal to .1591549431 = [Equation: 1 over [2pi]], since the scaling factor
should be unity. COPT can be anything, since it will not be used.
Rulebook ATP (junio 1996 - internet)
H04g
4
b) The second "$UNITS, -1., -1." card is needed to restore the previous values
of XOPT and (less important) COPT.
Example
Data generator:
BEGIN NEW DATA CASE
C
BENCHMARK DCPR-25
Diagnostic version of
DIAGNOSTIC
0 0 3 0 0 0 0 0 0 0 0 {critical to generate phasor branch output
0.0
0.0
60.
0
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
.
.
DC-9.
Only the extra DIAGNOSTIC line contents and place are shown here. The
remainder of this data case is the same as DC9 (already depicted in section
IV.F.).
Generated branch admittance output:
Following is an extract of the critical portion: TR-TX table.
Rows
1 through IT of List-3 parameters.
ROW
TR
TX
1
0.4844477034482824E-08
0.1228112151516649E-03
2 -0.1296675793838051E-06 -0.2242269695795113E-04
3
0.9441753227445476E-02 -0.2573990023024946E-01
4
0.4361450614869273E-07 -0.1462537283219131E-04
5 -0.8463238089378199E-02
0.1672909357448652E-01
6
0.1659497249358986E-01 -0.4747597790440687E-01
7 -0.1496688542217182E-06 -0.9426424775643807E-05
8
0.1871363082120123E-01 -0.5030148893415707E-01
9 -0.1445905414197019E-01
0.2409757560660085E-01
10
0.4631483359447570E-01 -0.1156116986463779E-01
11
0.1496046015179719E-05
0.6458965458057214E-05
12 -0.1680598538619227E-01
0.5971717826772237E-01
13
0.1897469864840810E-01 -0.4245555564293230E-01
14 -0.3271457520858705E-01
0.3047566556753915E-01
15
0.3607139971436178E-01 -0.6062044468394332E-01
16
0.1189890175137276E-05
0.4485645277231421E-05
17
0.2094153349533659E-02 -0.2062689282010267E-01
18 -0.2240686269477380E-02
0.3689527878049555E-01
19
0.3661437796623669E-02 -0.6532394073363741E-01
20 -0.2258503629330589E-04
0.2742503620833940E-01
21
0.4854082846355038E-02
0.9939308070334987E-02
R
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
C
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
0.0000000000000000E+00
Using branch admittance as input:
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.
C
1st of 3 subcases.
The 2nd will use alternate, wide format for [Y].
0.0
0.0
60.
{ Note XOPT = 60 (never actually used), TMAX=0; only steady state
1
1
{only steady state
C New XOPT, COPT = 1.59154943E-01 0.00000000E+00 |$UNITS, .1591549431, 0.0,
C 1st of coupled R-L.
4.80000E-09
1.22811E-04
|51RA1
GA1
4
C -1.000E-07-2.242E-05 9.440E-03-2.574E-02 9.440E-03|52RB1
GB1
C 4.300E-08-1.463E-05-8.500E-03 1.673E-02 1.660E-02|53RC1
GC1
4
C -1.000E-07-9.426E-06 1.871E-02-5.030E-02-1.450E-02|54
C
4.631E-02-1.156E-02 3.250E-03-8.199E-02 4.631E-02|
.
C 1.500E-06 6.459E-06-1.680E-02 5.972E-02 1.897E-02|55
1
C -3.270E-02 3.048E-02 3.607E-02-6.062E-02 3.607E-02|
-
Rulebook ATP (junio 1996 - internet)
H04g
5
C 1.200E-06 4.486E-06 2.090E-03-2.063E-02-2.200E-03|56
1
C 3.660E-03-6.532E-02-2.000E-05 2.742E-02 4.850E-03|
.
C New XOPT, COPT = 6.00000000E+01 0.00000000E+00 |$UNITS, 60., 0.0, { Restore
$UNITS, .1591549431, 0.0, { Ensures no scaling of [Y] in mhos. XOPT = 1/(2*Pi)
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
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
C --------------+-----------------------------C From bus name | Names of all adjacent busses.
C --------------+-----------------------------C
RA1
|GA1
*
C
GA1
|RA1
*
C
RB1
|GB1
*
C
GB1
|RB1
*
C
RC1
|GC1
*
C
GC1
|RC1
*
C --------------+-----------------------------BLANK card ending source cards
BLANK card ending non-existent output requests
C
Total network loss P-loss by summing injections =
9.326316227367E+03
C End injection: -12.96755041034 44.410354381177 -6429.033843309 9422.7669408263
C End injection: -42.47495983067
-106.9773628 -6888.835943954
-0.6822873
PRINTER PLOT
BLANK card ending non-existent plot cards
BEGIN NEW DATA CASE
C
2nd of 3 subcases uses identical data to the first, only in wide format.
C
Answers are identical because precision of the data has not been increased.
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, 1,
{ Switch to alternate, wide format in with R-L are read as R-L-C
51RA1
GA1
4.8E-9
1.22811E-04
{ R, L, C as
3E16.0
52RB1
GB1
-1.E-7
-2.24227E-05 { One triplet / card
.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.
$VINTAGE, 0,
{ Done inputing [Y], so return to original, old formats
BLANK card ending branch cards
BLANK card ending non-existent switch cards
14GA1
424.35
60.
0.0
-.1 {only 60Hz sources active
14RA1
424.35
60.
10.0
-.1
{during steady state!!
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
Rulebook ATP (junio 1996 - internet)
H04g
BLANK card ending non-existent output requests
C
Total network loss P-loss by summing injections =
9.326316227367E+03
C End injection: -12.96755041034 44.410354381177 -6429.033843309 9422.7669408263
C End injection: -42.47495983067
-106.9773628 -6888.835943954
-0.6822873
PRINTER PLOT
BLANK card ending non-existent plot cards
BEGIN NEW DATA CASE
BLANK card ending all subcases
Remarks:
1) TR-TX table manually should be put in the proper input format described in
this section (IV.G).
2) 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.
6
Rulebook ATP (junio 1996 - internet)
H05pic
1
V. BRANCH CARDS TO MODEL SINGLE-PHASE NONLINEAR ELEMENTS R,L
H05A\5AG01
119
V-A. Type-99 Pseudo-Nonlinear Resistance R(i)
H05A\5AG02
120
H05A\5AG03
121
H05A\5AG04
122
Rulebook ATP (junio 1996 - internet)
H05pic
2
V-B. Type-98 Pseudo-Nonlinear Reactor L(i)
H05A\5AG05
123
H05A\5AG06
124
V-C. Type-97 Staircase Time-Varying Resistance R(t)
H05A\5AG07
125
H05A\5AG08
126
Rulebook ATP (junio 1996 - internet)
H05pic
3
V-D. Type-96 Pseudo-Nonlinear Hysteretic Inductor L(i)
H05A\5AG09
127
H05A\5AG10
128
V-E. Exponential ZnO surge arrester R(i) (type-92; "5555")
H05A\5AG11
129
H05A\5AG12
Rulebook ATP (junio 1996 - internet)
H05pic
4
130
H05A\5AG13
131
V-F. Type-91 Multiphase Time-Varying Resistance R(t)
H05A\5AG14
132
H05A\5AG15
133
H05A\5AG16
Rulebook ATP (junio 1996 - internet)
H05pic
5
134
V-G. Type-92, Multiphase, Piecewise-Linear Resistance with Flashover
H05A\5AG17
135
H05A\5AG18
136
H05A\5AG19
137
V-H. Type-93 True, Nonlinear Inductance L(i)
H05A\5AG20
Rulebook ATP (junio 1996 - internet)
H05pic
6
138
H05A\5AG21
139
V-I. Circuit Breaker or Electric Arc Modelling using TACS-controlled R(t)
H05A\5AG22
140
V-J. User-supplied FORTRAN for Nonlinear element modelling
H05A\5AG23
141
Rulebook ATP (junio 1996 - internet)
H05pic
7
V-K. Corona Modelling for an overhead transmission line
H05K\5KG01
142
H05K\5KG02
143
Rulebook ATP (junio 1996 - internet)
H11pic
1
XI CARDS FOR OVERRIDING INITIAL CONDITIONS
H11\11G01
144
H11\11G02
145
H11\11G03
146
Rulebook ATP (junio 1996 - internet)
H12
1
XII The Output specification cards
The time response of the electric network being solved is available for the
user's inspection via one of the following three procedures :
- "LUNIT6-output"; tabulated decimal numbers, on the line printer.
- "batch mode plotting"; be it printer plot, Calcomp plot or screen plots
(highly dependent of the computer system in use; refer to section I-F for
more detailed information).
- "PL4-file"; can be used for later processing on printer, plotter or
screen via interactive plotting programs TPPLOT and WINDOWPLOT (if such
feature is provided for the computer system in use; refer to section I-F
for more detailed information).
The user can only look at variables for which an output request has been
made as part of the simulation run. The procedure for doing this depends upon
whether a conventional single deterministic simulation is involved, or on the
contrary, a statistical overvoltage study is of concern.
Values for voltages, currents, powers and energies are computed by the
simulation part of the EMTP program at discrete time instants [Equation: t = 0,
DELTA t, 2 DELTA t, ...]. Such values are then either printed on LUNIT6, (with
frequency controlled by the miscellaneneous data parameter "IOUT") or they are
written to disk via logical unit number 4, (with the frequency "IPLOT") for
purposes of later plotting after the simulation is finished (see section II-B for
details on miscellaneous parameters IOUT, IPLOT and ICAT).
In both cases, any
variable to be output must be specified by the user.
Following output request exist :
- node voltage output
- branch output (branch voltage, branch current, power or energy)
Let us now discuss in more detail how to obtain the required output.
Node voltage output
As explained in section I-I, the user must input one or more cards
specifying all the node names for which he wants to have printed or plotted node
voltage output.
Distinction should be made between two cases: all nodes, or node selection;
- If all node voltages are requested, the user should punch one
specification card with a "1" in column 2. Do not terminate with a blank
card.
- If a selective list of the node voltages is required, the user should
list the node names on one or more cards which have the first 2 columns
blank. See figure. All cards must have columns 3 to 8 non-blank. The
list is terminated by a blank card.
Rulebook ATP (junio 1996 - internet)
H12
147
Note:
Only the first of the 13 potential fields per card must be
non-blank. All other fields may be randomly left blank.
- if no node voltages are required, just supply a single blank card.
Branch or switch output
Following are possible branch and switch outputs :
- branch voltage (voltage difference between begin and end node)
- branch current
- branch power
- branch power
- branch energy
There are two ways to request such output.
The first method is to flag such output in column-80 of the branch cards at
input time; hence no further specification is required at this point (see section
IV for details).
Another method is to request branch and switch outputs along with nodevoltage outputs. The format for this added alternate branch and switch output is
as follows:
148
PARAMETERS:
TY = [Equation:
[Equation:
[Equation:
[Equation:
-1
-2
-3
-4
->]
->]
->]
->]
request
request
request
request
for
for
for
for
only current output
only voltage output
both voltage and current output
power and energy output
2
Rulebook ATP (junio 1996 - internet)
H12
3
[Equation: -5 ->] request to calculate voltage differences between a
pair of node names, irrespective whether or not these two nodes are
actually connected via a branch
A list of 6-character names of branches or switches on one or more cards,
beginnning at column 3. The user can mix any branch or switch card with any node
voltage output request card.
One blank card is needed to terminate the
specification of the EMTP output requests.
Note: If the user has specified the "all node voltage" card, this card (with
a "1" in column 2) must be the terminating card and no blank ending card is
allowed.
Following are 2 examples of the output request cards
1234567890123456789012345678901234567890....
____________________________________________
-2BRCH1 BRCH2
BUS1 BUS4 BU9
-3BRCH5
BLANK CARD TERMINATING OUTPUT REQUEST
1234567890123456789012345678901234567890....
____________________________________________
-1G1
F3
1
The printed heading for branch-variable output consist of a pair of node
names, one above the other;
This ordering (upper to lower) indicates the
polarity of the output. Suppose that node "u" represent the upper node, and "l"
the lower node of the pair, then:
a) The branch voltage output is vul (t) = vu(t) - vl(t)]
b) The branch current output is iul(t)
For non-switch elements, power and energy output represent the consumption
(loss or storage) of the branch and the net flow into the branch from the time
t=0 up to the time in question.
For switches, the power and energy flow through the switch:
c) The switch power output is Pul(t) = Pu(t) - Pl(t)
d) The switch energy output is
∫ Put ( ξ )d( ξ ) 15
t
0
Plotting creates no special problem, unless output for parallel branches should
be requested.
Nevertheless, only the first current (energy) output of the 2
parallel branches/switches is accessible to the user. As a practical restriction
this limitation is not serious.
One can always insert a near-zero resistance
branch, thereby eliminating any parallel connection. Another method is to alter
the node name sequence when specifying the branch/switch.
Rulebook ATP (junio 1996 - internet)
H12
4
For example, should the power P(t) and energy E(t), in addition to the
branch current and voltage, be desired, the configuration shown below could be
used. Resistance R2 is chosen to be "small" according with the rule concerning
system-dependent minimum values (see Section IV-A). Current output (a 1-punch in
column 80) is requested on the branch card for resistance R 2. Resistance R1 can
be chosen very large, and branch voltage output is to be requested for it (a 2punch in column 80). The nonlinear element has a 4-punch in column 80, to give
its power and energy consumption.
149
The general appearence of the tabulated time-step loop.
In general, there are five possible groupings of variables for EMTP printed
output of the time-step loop. In order of appearance, these are:
1)
2)
3)
4)
5)
voltages (both node and branch)
branch/switch currents.
S.M. variables.
TACS variables.
U.M. variables
A pair of 6-character names is used to identify each output variable,
although for node voltages, the second name is blank. For branch voltages and
currents the tabulated value is taken from the upper value down to the lower
value.
For TACS variables the first name is always "TACS".
For the U.M. and
S.M. the first name is internally generated and contains the number of the
rotating machine.
Example "UM-12" will be the first name for the 12-th U.M.
"MACH-3" would be the first name of a variable belonging to the third type-59
S.M.
The number of variables in each of these 5 classes of variables will be
printed by the EMTP, provided the number is positive.
The absence of a class
total means no such ouput exists. As an example the output of benchmark DC34 is
included.
Column headings for the 20
EMTP output variables follow. These are divided among the 5 possible classes as follows ....
First 5
output variables are electric-network voltage differences (upper voltage minus lower voltage);
Next
6
output variables are branch currents (flowing from the upper node to the lower node);
Final 9
output variables pertain to Type-19 U.M. components (names are generated internally);
Step
Time
BUS-A1
BUS-B1
BUS-C1
BUS-M1
BUS-M0
BUS-A1
BUS-B1
BUS-C1
BUS-M1
BUS-M0
BUS-A0
BUS-B0
BUS-C0
TERRA
TERRA
BUS-M0
BUS-M1
UM-1
TQGEN
UM-1
OMEGM
UM-1
THETAM
UM-1
IPA
UM-1
IPB
UM-1
IPC
UM-1
IE1
UM-1
IE2
UM-1
IE3
Rulebook ATP (junio 1996 - internet)
0
0.0
1
.001
2
.002
3
.003
4
.004
5
.005
1.56413
1.01
1.25370608
1.00999974
.763603075
1.00999829
.167906931
1.00999414
-.45063432
1.00998567
-1.0090049
1.00997143
-.30745
1.00124132
.317284401
.997905631
.891559332
.994660197
1.34760378
.991231498
1.60600319
.988209557
1.64759793
.986026593
-1.25677
1.0
-1.5709433
1.0
-1.6551247
1.0
-1.5156333
1.0
-1.1551614
1.0
-.6388854
1.0
1.0
.93787
1.00000302
.93787
1.00000988
.93787
1.00001841
.93787
1.00002854
.93787
1.00003997
.93787
1.0
1.386
1.0000025
1.40049668
1.0000075
1.22097729
1.0000125
.870655506
1.00001751
.399835869
1.00002252
-.12650205
1.38494
-.95877
1.40049668
-.50888659
1.22097729
.010653511
.870655506
.528248848
.399835869
.970563338
-.12650205
1.27567094
H12
-.95793
-.42721
-.50888659
-.89163009
.010653511
-1.2316108
.528248848
-1.3989244
.970563338
-1.3703792
1.27567094
-1.1491889
-.42701
-2.826
-.89163009
-2.8259503
-1.2316108
-2.8258183
-1.3989244
-2.8248425
-1.3703792
-2.8235957
-1.1491889
-2.8218048
0.0
0.0
.012094107
.85956E-4
.015338089
.309395E-3
.018762645
.001999525
.021776117
.004025981
.023944838
.006841813
5
0.0
0.0
.010000262
-.00481942
.010001714
-.0092568
.010005857
-.01265851
.010014326
-.01505822
.010028569
-.01548173
In this example, voltages, branch/switch current and UM-output are present,
but SM and TACS output are lacking.
Rulebook ATP (junio 1996 - internet)
H13pic
1
XIII. TYPE-1 SOURCE DEFINITIONS: EACH TIME STEP, 1 VALUE PER SOURCE
H13\13G01
150
Rulebook ATP (junio 1996 - internet)
H16
1
XVI.INTERACTIVE EXECUTION, OBSERVATION, AND CONTROL (SPY)
Interactive EMTP execution means that the program will execute while the
user waits.
This is to be contrasted with batch-mode execution, wherein
execution will be performed at some later (usually indeterminate) time.
Interactive EMTP observation means that the user can see what is happening
during his interactive execution. The user certainly should be able to observe
LUNIT6 line printer output as it is generated, since this is simple.
For
simulations (the most important case of program usage), the user also should be
able to produce graphs of output variables as the simulation progresses.
Such
plots should be capable of automatic advancement as the simulation progresses,
like a strip-chart recorder for analog computers.
Finally, the user should be
able to examine internal variables of the program --- variables that otherwise
would be inaccessible.
All of these capabilities constitute interactive
observation, which is to be contrasted with a complete lack of all knowledge
during batch-mode execution.
Note that interactive program execution does not
imply interactive observation. It is not uncommon for a minicomputer terminal to
be tied up with interactive EMTP execution while the user waits but sees nothing,
since the LUNIT6 output is frequently sent to disk rather than to the screen.
Interactive EMTP control means that program execution can be modified "on
the fly," while the EMTP is executing. This is to be contrasted with batch-mode
execution, where changes can only be made before the job submittal, or after the
solution has been returned. It should be noted that interactive EMTP execution
and observation do not imply interactive control. On the other hand, one can not
conceive of interactive control without interactive execution and observation.
These three concepts of interactive EMTP use - execution, observation, and
control - are combined by the EMTP feature named "SPY" for short.
SPY allows
nearly complete observation, and also substantial control, during interactive
EMTP execution.
Such usage is requested at the time program execution begins
(see Section I-C, or XVI-A below).
When some summary phrase such as "interactive usage" of the program is
mentioned, what does it mean? Now that observation and control are available via
SPY, interactive execution no longer qualifies as "interactive usage" of the
EMTP. As used today, "interactivity" and "SPY" are EMTP synonyms.
Although in theory most modern computers can support most SPY functions, it
is the scientific workstations with variable character fonts, scrollable windows,
and graphics that are ideally suited for SPY usage.
Most mainframe computers
either will not allow such operation, or are controlled by organizations that
make such operation so expensive or so inconvenient that it is the user who will
not want to consider it. In between these two extremes, there are minicomputers
that may or may not be suitable, depending upon the politics of those who operate
them.
Any reader who is unsure about his own computer system is advised to
consult the installation-dependent information of Section I-F.
Details of SPY usage follow in the remainder of this section.
Where an
illustration is required, Apollo will always be used, since SPY has been the most
fully developed for such scientific workstations of Section I-F-1.
. Initiating EMTP Execution that Includes SPY
Before EMTP execution begins, the potential user of SPY should consider his
STARTUP file. Section I-E-2 describes such variable initialization. Of the
more than 100 parameters that are user-definable via this file, perhaps a third
or more apply to SPY, and many must be set as execution begins. The best example
of this is the configuration of the vector-graphic plotting window.
For most
Rulebook ATP (junio 1996 - internet)
H16
2
computers, installation-dependent logic to configure the plot window can only be
performed once, at the start of execution. So, make sure STARTUP values are
reasonable before execution begins.
As explained in Section I-C, SPY usage must be selected
beginning of EMTP execution. An illustration using Apollo follows:
$emtp
EMTP begins.
SPY
at
the
very
Send (SPY, file_name, DISK, HELP, GO, KEY) :
The first line is merely the operating system command to execute the Apollo
EMTP (a disk file named "emtp").
The second line is the program's initial
output, which requests the user to choose among several options. If "SPY" is
keyed at this point (see the third line), program execution that allows
interactive observation, and control will begin.
For this and all other EMTP dialogue involving key words of one type or
another, upper-case letters (rather than lower-case) are required. But the EMTP
can be requested to convert any lower-case letters to upper-case letters (see
STARTUP variable KINSEN), and use of this is generally recommended. Then the
user need not be concerned about case, generally speaking. For the exceptional
circumstances where he really does want lower case (e.g., for the labeling of
plots), he need merely append an exclamation point "!" at the end of his line.
This will be erased by the program after being recognized as a request to bypass
possible case conversion.
Once SPY execution has begun, input will normally shift from the EMTP output
window to the SPY window. Apollo provides a good illustration, as shown on the
next page. Execution began in the bottom window with the small character font.
The initial choice "SPY" was also sent in this window, after which the top two
windows were opened automatically by the program. All subsequent keyboard input
is via the SPY window (above and to the left). The window to the right of this
has no input pane, and is used solely for vector-graphic output of the "PLOT"
command of SPY.
SPY dialogue is initiated
different such commands exist,
can be seen in the SPY window
special SPY language that will
the Rule Book.
?????
Full-page Apollo screen
display on this page
by short key words called SPY commands. Some 68
and several of these (DATA, GO, BREAK, and PLOT)
on the following page. It is the usage of this
dominate the remainder of this present chapter of
WSMWSM
?????
In addition to such original, normal, active uses of SPY, there are newer
inactive (batch mode) or specialized uses.
For example, a dominant special,
degenerate application of "SPY" is for the interactive plotting of a previous
simulation (see Section XVI-E).
Another special (and usually inactive) use is
for vector-graphic plotting of the rational function fitting of either "JMARTI
SETUP" (see Section XVII) or "SEMLYEN SETUP" (see Section XXII). Yet another
is the monitoring of convergence of the EMTP load flow. The inactive or batch
mode of SPY usage is distinguished by an absence of keyboard input to the SPY
window. This might be necessary, since the SPY window of a workstation such as
Apollo might not even exist prior to execution. Inactive usage is characterized
by the specification of a disk file name at the same time "SPY" is keyed. An
example from Apollo follows:
Rulebook ATP (junio 1996 - internet)
H16
3
$emtp
EMTP begins. Send (SPY, file_name, DISK, HELP, GO, KEY) :
SPY DC29.
SPY @9
What is shown here is a combination of output and input at the instant the
first keyboard input is to be read.
The first two lines are above the input
pane, whereas the last two are keyed input to be read in the future. Line 3 is a
request for the inactive (batch-mode) solution of the "SEMLYEN SETUP" data case
BENCHMARK DC-29.
Vector plots of the propagation function and characteristic
admittance fitting will be produced in the SPY plot window automatically as the
execution proceeds. After the last (sixth) of these, and after much output to
LUNIT6, the fourth line ("SPY#@9") will be read, and will serve to transfer the
request for command-file execution ("@9") to SPY as though "@9" had been keyed
in the SPY window.
Opportunities for SPY Dialogue: the Keyboard Interrupt
When the interactive EMTP user desires some new observation or control of
the program, he will key one of these commands. At some point, this keying will
be complete, and the user will want SPY to immediately service his request. Some
special signal, called a keyboard interrupt of SPY, or simply a user-keyed
interrupt, will exist for this purpose, and will be activated.
For flexible computers (e.g., Apollo), the SPY user will not even be aware
that a special keyboard interrupt signal has been sent, since the normal carriage
return key (abbreviated hereafter as <CR>) serves this function.
But whatever
the signal, once the keyboard interrupt has been sent, how quickly can or will
the EMTP respond to the user's request? The answer may depend both upon where
program execution is located at the time of the request, and also upon the size
of the data case being solved. Barring installation- dependent improvements, the
EMTP only checks for SPY input at certain prearranged places, of which the
following are the most important:
1. Each time a new data card is read by SUBROUTINE#CIMAGE. Since data cards
generally will be read at a rate of several per second, it will seem to the
user that SPY input is accepted instantaneously during data input.
2. Each time a new UTPF overlay is entered. Depending upon the overlay, this
may or may not provide quick response to a user request. Some overlays are
passed through quickly, whereas others may involve substantial computational
effort. Between the end of source cards (UTPF overlay#5) and the beginning
of output variable requests (UTPF overlay#15), there may be noticeable delay
in responding to SPY input, then.
3. Each row of major tabular outputs of the program. Important examples are
the connectivity display (controlled by miscellaneous data parameter IDOUBL
of Section II-B) and the phasor branch flows and injections that follow the
steady-state network solution (controlled by miscellaneous data parameter
KSSOUT
of Section II-B).
During such outputs, the response to SPY input
will appear almost instantaneous. To abort such tabular displays, a special
interrupt is required.
For Unix, some standard key or combination of keys
(e.q., for Sun Microsystems, CTRL-\) is used.
For other systems (e.g.,
Apollo Aegis), the user may be required to set variable KWT2ND equal to unity
with a DEPOSIT command after first sending LOCK.
4. At the beginning of each of three segments making up the time-step loop of
UTPF overlay 16. For a small case that simulates at a rate of one or more
time steps per second, the response to SPY commands should appear
Rulebook ATP (junio 1996 - internet)
H16
instantaneous.
But for giant cases on a weak computer, there could be
noticeable delays.
These opportunities for SPY input assume that SPY is not intentionally
skipping some opportunities for user input. The STARTUP file does control such
attentiveness by SPY in the form of variable MAXFLG, which normally should be
unity. Only the experienced user is advised to tamper with this, and any changes
should only be for very good reason. One such reason might be that the computer
being used could involve unusually large overhead checking for keyboard
interrupts, and the user might not want to slow the simulation needlessly.
When using a speedy computer with adequate real memory (to minimize paging),
and when the program will be checking for user-keyed interrupts several times a
second, the response to SPY commands and associated data will appear to be nearly
instantaneous.
The user has the impression that there is time-sharing of the
computer between the EMTP simulation and SPY. This is the way it should be: an
illusion. In fact, there is no time-sharing at all.
4
Rulebook ATP (junio 1996 - internet)
H16
5
. SPY Commands Explained According to General Function
With more than 60 distinct SPY commands, the complete explanation or
definition of all of these is a big job.
Rather than define each SPY command
individually as a dictionary might, the presentation of this section will be
organized according to broader categories of summary purpose.
The user who wants specific information about a single specific SPY command
is referred to the program itself, since this provides such information
interactively.
As an illustration, consider what happens when the user first
sends the SPY command "HELP", followed by the subcommand "GO" (which is SPY
command number eleven):
SPY: HELP
Available key-word responses to the "SPY:" prompt are as follows:
NAMES
STOP
PLOT
HELP
EXAMINE DEPOSIT SWITCH
APPEND
SAVE
RESTORE GO
ECHO
FIND
LIST
SPY
BREAK
WHEN
COMMENT @
ROLL
TYPE
VERIFY
FILES
SLEEP
SOURCE
UNUSED
WAKE
CATALOG BEGIN
STEP
UNUSED
DATA
RAMP
TIME
TEK
BRANCH
YFORM
NOY
FACTOR
NOF
RLC
OS
BUS
SIZE
LIMIT
IOUT
NODE
NONLIN
SPACE
LUNIT4
SERIES
LOCK
[Y]
[F]
NOROLL
$
DEBUG
SM
HONK
HEADING TACS
WAIT
V-I
MENU
DICE
FONT
OVERVIEW
Send "OVERVIEW" for command-independent general information.
KEY-WORD OF INTEREST (ALL, NEXT, TOP, BOT, BACK, OVERVIEW): GO
KEY WORD NO. 11: "GO"
---- ---- ---This command can be issued in response to the "SPY:" prompt to terminate
several sequences, such as one which might have begun with "RESTORE".
In
this case, there would exist preceding transfers of control from overlay 16
to overlay 20 ("KATALG"), and then back to overlay 16 again.
As a second
example, "GO" cancels the "LOCK" command (which disables time-sharing and
holds control within SPY).
Third, it can be used to begin the EMTP solution
following the "DATA" command (for data card input at the beginning of
program execution).
Finally, "GO" cancels the suspension of execution
which accompanies the "SLEEP" command.
KEY-WORD OF INTEREST (ALL, NEXT, TOP, BOT, BACK, OVERVIEW):
Sometimes this assistance can go deeper, to a second level, in the case of
certain complicated SPY commands such as
"PLOT".
If the display ends with
another, more-specialized menu, this is what has happened. As an illustration,
consider the end of description about "PLOT":
This command has its own prompt,
SHAFT
MENU
MODE
DEBUG
CHOICE TIMEUNITS NAME
LABEL
X-Y
CURSOR
EXTREMA LEVEL
OFFSET
PEAK
AVERAGE RESCALE
SUBCOMMAND OF INTEREST (MENU, ALL,
and 32
subcommands, which follow:
UNUSED SET COLUMN RESET
TIMESPAN
ROLLV
ROLLC
UNUSED
FRONT
SMOOTH
SIZE
SHOW
FACTOR
TIME
ALL TIME DRAW
FOURIER
<CR>, TOP, BOT, BACK, END):
The serious student of SPY really should have all such explanation available
both as a disk file and in printed form. The disk file is useful for interactive
searching with a computer editor program, note.
Producing all such
"HELP"
output is simple enough (use "ALL" instead of "GO" as illustrated). But how does
the user transfer such output from the screen to the disk? Unfortunately, this
operation is installation-dependent, so only general guidelines can be given
here. For workstations with scrollable windows (e.g., Apollo), just use "cut and
paste" to create a disk file. The next-best alternative is redirection the SPY
output channel to disk. For those systems that do not separate SPY dialogue from
Rulebook ATP (junio 1996 - internet)
H16
LUNIT6 output, this merely requires sending all LUNIT6 output to disk. For some
systems (e.g., DEC#VAX), one can simply assign a file externally.
For others,
one can use the "DISK" option at the beginning of program execution. If the
user is unsure about what to do for his own computer system, he is advised to
consult with Program Maintenance. Reading about his computer in Section I-F may
also be helpful.
Under the assumption that the user has all "HELP" output available to him
both in printed form and as a disk file, the following explanation will be
organized in more general fashion, and will not repeat all of the details.
Volume is simply too great ("save a tree in the Ardennes"), and content is too
subject to change.
Applicable to all input loops within all SPY commands is the use of "SPY"
to return to the
"SPY:"
prompt.
For example, this is the way the justdisplayed loop of "HELP" would be exited. Since this works everywhere, and is
assumed to be known by all users, it is implicit.
That is, it is not listed
among alternative responses, generally.
XVI-C-1.
Loading and/or Changing EMTP Data Cards via SPY
"DATA" will be the first SPY command for simple-minded usage. It tells the
EMTP that the user is ready to specify an EMTP data case that next is to be
solved.
The following illustrates usage for the interactive solution of
BENCHMARK DC-4:
SPY: DATA
SEND EMTP DATA FILE NAME (CONTROL) : DC4.
46
= cards read. LUNT10 limits KCARD1, KCARD2 = 5489
SPY:
5534
The user sent "DC4."
(see the right side of the 2nd line), to which SPY
appended the missing, implied file type "DAT". SPY then connected the disk file
DC4.DAT, read the contents, and stored these 46 card images in positions 5489
through 5534 of the program data card cache (which uses LUNT10).
If some
different directory, disk, or even computer (of a network) were required for the
file of interest, this would be required, of course.
The mention of "simpleminded" is because $-cards $DISABLE and $INCLUDE are not allowed. See the
next paragraph for more information about them.
If "DATA" is to be the first SPY command, followed by "GO" to begin the
EMTP simulation, there is a more compact and powerful way of specifying the input
data file. As briefly mentioned in Section I-C, and illustrated in Section XVIA, the user could respond to the original program input prompt with a character
string following his "SPY" request, separated by one space. If this does not
begin with "@", it will be taken as a disk file name for an implied "DATA"
command. For example,
EMTP begins.
Send (SPY, file_name, DISK, HELP, GO, KEY) :
SPY DC4.
will result in the loading of data file DC4.DAT as illustrated in the preceding
paragraph, followed by an implied "GO" to begin the solution. Note that both
SPY commands "DATA" and "GO" are implied (the user need not key them here).
Should "@" be used, see Section XVI-C-5.
The reference to "more powerful" is
recognition of the fact that the
"DATA"
command has no logic for data
modularization (Section I-K) or sorting by class (Section I-J).
Such logic is
limited to the opening prompt ("EMTP begins. ..."), so if it is desired or
required, the user must load his data cards as just illustrated (with the file
name following "SPY#").
6
Rulebook ATP (junio 1996 - internet)
XVI-C-2.
H16
7
SPY Commands to Halt or Resume Program Execution
"GO"##is the SPY command that will order a resumption of an EMTP simulation
after it has been suspended.
Since SPY begins with the simulation suspended,
"GO" will be sent early in the typical SPY dialogue.
"LOCK"##is the SPY command that will suspend an EMTP simulation.
reawaken such a hibernating EMTP simulation, the user simply sends "GO".
To
"BREAK"##allows the user to request a suspension of the simulation
either at some future simulation time, or at some place (some UTPF overlay) that
later will be passed. When the break occurs, there will be a message in the SPY
window, followed by the familiar SPY prompt, of which the following
is illustrative:
SPY:
SPY:
// Service "BREAK".
T = 0.20000E+00
16 = NCHAIN
At this point, the simulation will hibernate until a subsequent "GO" allows it
to advance once again. In between can be arbitary SPY dialogue, of course.
"STEP"##will toggle the binary flag that controls whether or not the
simulation will be suspended at every possible opportunity.
The main use for
this is diagnostic, although it is critical to certain other applications as well
(e.g., the plotting of Section XVI-E).
"STOP"##will terminate EMTP execution immediately via a call to the
installation-dependent ENTRY STOPTP of SUBROUTINE WINDOW. Since "STOPTP" may
close files or windows in a civilized fashion that the operating system prefers,
the SPY command "STOP" is the preferred way to terminate program execution of
single, deterministic simulations (the most common case of interest).
XVI-C-3.
SPY Commands to Observe EMTP Tables: BUS, BRANCH, etc.
Interactive observation using SPY poses the challenge of convenience.
Although any variable of any COMMON block can be observed using the "EXAMINE"
command of Section XVI-C-6,
this is usually cumbersome and slow - much like
symbolic debuggers of factory-supplied software.
Since most EMTP data is
organized using about a dozen major tables, high-level SPY commands have been
implemented especially to allow the observation of such major table contents:
BUS
NODE
BRANCH
RLC
SWITCH
SOURCE
NONLIN
V-I
[Y]
[F]
SM
to observe the List-1 EMTP bus table;
to produce node numbers corresponding to names;
to observe the List-2 EMTP branch table;
to observe the List-3 EMTP table of R, L, C;
to observe the List-6 EMTP switch table;
to observe either the TACS source table or the List-4 EMTP switch
table;
to observe the List-9 nonlinear elements;
to observe the List-10 nonlinear characteristics;
to observe rows of the Y-matrix of the time-step loop. The output
is of nonzero columns only, one row at a time (upon request of the
user).
to observe rows of the triangularized Y-matrix of the time-step
loop. The output is of nonzero columns only, one row at a time
(upon request of the user).
to observe parameters of Type-59 S.M. sources.
Rulebook ATP (junio 1996 - internet)
H16
There is considerable similarity in the usage of all such commands for the
observation of EMTP tables. In all cases, the user enters an interactive loop in
which he requests one or more additional rows or entries of the table being
considered. When the user has seen enough, he sends "SPY", and the loop will
be exited (there will be a return to the "SPY:" prompt). Simple table output
is requested by sending a beginning and an ending row number using free-format
(using a blank or comma separator).
Key words are recognized alternatives,
however.
"ALL" will display the entire table, "TOP" will display row one,
"BOT" will display the last row, "NEXT" or just a carriage return will display
the following row. In order to truncate an on-going display, send the user-keyed
interrupt.
Several EMTP tables have too many columns for an 80-column display without
wrap-around. Any such EMTP table has been split into two or more subtables among
which the user can choose. Once inside the display loop for the table command of
interest, sending "EXTRA" will change to the next subtable, and sending "HEAD"
will refresh the current table heading.
Such alternation among subtables is
cyclic, so after the last subtable will come the first subtable once again.
As an illustration of the observation of EMTP tables, consider the
following display of the first of two "BRANCH" tables, for a modified version
of BENCHMARK DC-4:
Row
1
2
3
4
5
name
LIN001
R-mag
LIN003
LIN004
LIN005
name-K
GEN
TRAN
TRAN
LOADG
GENXX
name-M KBUS MBUS LGTH
TRAN
4
-3
1
TERRA
3
1
1
LOADG
3
-2
1
TERRA
2
1
1
TERRA
5
1
1
NR KODEBR KODSEM LITYPE IMODEL INDHST
-1
0
0
0
0
0
-2
0
0
0
0
0
-3
0
0
0
0
0
-4
0
0
0
0
0
-5
0
0
0
0
0
Not shown is the
"BRANCH"
command,
followed by
"ALL"
(which would
normally be seen to the right of the heading, had it not been cut off to narrow
the display.
XVI-C-4.
"PLOT"
for Vector or Character Plots During Execution
The SPY command
"PLOT"
represents a gateway to sophisticated, on-line,
interactive plotting of the ongoing simulation.
Both character and vector
plotting options are available.
SPY plotting involves its own separate prompt
and command-oriented vocabulary, as the following dialogue during entry
illustrates:
SPY: PLOT
Time limits are [
PLOT: MENU
DEBUG
TIME
SHAFT
MODE
NAME
LABEL
CURSOR
EXTREMA
PEAK
AVERAGE
PLOT:
0.0,
.15 ]
FACTOR
SET COLU
ROLLV
LEVEL
RESCALE
SIZE
RESET
ROLLC
SMOOTH
ALL TIME
CHOICE
TIMESPAN
FRONT
SHOW
DRAW
MENU
TIME UNI
X-Y
OFFSET
FOURIER
Note that the beginning and ending times of available plot data (here zero
through 150 msec) are shown as plotting is entered.
The
"MENU"
subcommand
displays the 30 possible subcommands that are honored within plotting. For ease
of printing, this tabulation has been narrowed to only six columns, versus eight
on the screen.
Note that "HELP" is not one of the subcommands. If the user
wants details of any of the "PLOT" subcommands, he should exit and use the SPY
"HELP" command.
8
Rulebook ATP (junio 1996 - internet)
H16
9
Many parameters and conventions of SPY plotting are determined by the
STARTUP
file (see Section I-E-2).
Since this can be either computer-, or
installation-, or user-dependent, little can be said here that would be
applicable to everyone.
Two types of plots are possible: character plots and vector-graphic plots.
It is the
"MODE"
subcommand that toggles the binary selection between these
two.
If vector plotting is available for the computer system of interest, it
will normally be the beginning choice, since it should usually be preferred (due
to the higher resolution).
If in doubt about the default decision, consult
variable
LTEK
of the
STARTUP
file (Section I-E-2).
For a 3-window
configuration, any character plot of SPY "PLOT" will appear in the SPY window,
whereas any vector plot will appear in the separate vector plotting window. The
width of the character plot can be changed by means of the
"SET#COLUMN"
subcommand (80 and 132-column plots are commonly used).
There is no special provision within EMTP software for the production of
plots on paper using the "PLOT" command of SPY. Hence such hard copy may or
may not be possible, depending upon the software of the operating system that is
being used, and the hardware associated with the computer monitor. For Apollo,
system software provides the solution automatically. The shell command $CPSCR
("copy screen") creates a disk file of the screen image, and this can then be
printed using the shell command $PRF with the -PLOT option (for bit-mapped
printing). For many Tektronix users, separate hardware is connected to create a
hard copy at the push of a button.
Finally, conventional instant photographic
cameras (e.g., Polaroid) are not uncommon.
The user can exit and re-enter SPY
"PLOT"
without any loss of plot
variables or parameters that have already been selected.
This non-volatile
memory is to be contrasted with that of early versions of the separate
interactive plotting program "TPPLOT" (including the BPA version through May of
1987).
Another difference from the separate interactive plotting program "TPPLOT"
is that no plot file need be specified. When one uses SPY "PLOT", it is only
the data already stored in the program's plot buffer that can be plotted. Hence
the familiar specification of a disk file of interest is dispensed with (except
for the exceptional case of Section XVI-E).
There are several binary control parameters that can be toggled between the
two possible states using key words.
The revised status of such variables is
illustrated by a single standard message in which the function is summarized
within parentheses on the right.
As an illustration, the first input of
"EXTREMA" will result in the program response:
---
Toggle to
"ON"
(extrema display)
Later, when such output of maxima and minima is turned off by means of a second
such request, the program will acknowledge the change as follows:
--Although a
practice.
little
Toggle to
abbreviated,
"OFF"
this
(extrema display)
should
be
clear
enough
after
a
little
All users will specify variables to be plotted, and it is the
"NAME"
subcommand that begins such input.
Once this input begins, it operates in
similar fashion to the separate plotting program
"TPPLOT",
with three loops.
Node voltages must be specified first, then branch voltages, and finally, branch
currents, corresponding to the three major classes of batch-mode EMTP plotting.
Rulebook ATP (junio 1996 - internet)
H16
One class is terminated by "END", at which point input changes to the following
class of input, if any remains. An illustration of the three different prompts
for the three different classes of variables follows:
PLOT: NAME
SEND NODE NAME (END, LAST) [ "JDAYA " ] :
SEND BRANCH VOLTAGE NAMES (END, LAST) [ HOMA , NEUTRL
SEND BRANCH CURRENT NAMES (END, LAST) [ NEUTRL,
] :
] :
Within square brackets are shown existing variables that can be reused, if
desired (a <CR> rather than a nonblank response will do this). After the last
variable has been specified via such input, "LAST" will end all such input and
return to the "PLOT:" prompt.
In case the user wants a list of the available
plot variables, he can use the subcommand
"CHOICE".
The following is
illustrative:
PLOT: CHOICE
Type-4 entries (node voltages) :
GEN
TRAN
GENXX
Type-8 entries (branch voltages or powers) :
GEN
TRAN
TRAN
TRAN
LOADG
Type-9 entries (branch currents or energies) :
TRAN
GEN
TRAN
TRAN
LOADG
There normally will be a need for manual variable scaling only if a single
plot is to mix different types of EMTP variables (e.g., both voltages and
currents), or variables of the same type but variables that have been drawn from
different sides of a transformer. This is because of the wide variation of the
numbers that are involved involved.
Well, not only can the user scale plot
variables linearly (via the
"FACTOR"
subcommand), but he also can provide a
constant offset if desired (via the
"OFFSET"
subcommand).
The two prompts
associated with these options appear as follows, and should be self-explanatory:
PLOT: FACTOR
SEND VECTOR OF MULTIPLIERS, separated by ","
PLOT: OFFSET
SEND VECTOR OF OFFSETS, separated by "," :
:
In order to cancel any such usage, and return to the natural, initial
scaling, use the "RESCALE" subcommand.
Plot labeling is optional. If wanted, the "LABEL" subcommand will result
in prompts for a 1-line super title, a 1-line vertical axis label, and finally, a
multi-line case title.
Unless the computer being used provides a large vector
plotting window, the multi-line case title will generally be dispensed with (just
send "END" in response to the third prompt). For the record, the three prompts
follow:
PLOT: LABEL
SEND SUPER-TITLE [Sample 1-line su...] :
SEND VERTICAL AXIS LABEL [Voltage in kV
SEND CASE-TITLE LINE 1
[
...] :
...] :
Much as for the preceding
"NAME"
command,
the beginnings of old
definitions are shown within square brackets. If these are to be reused, they
can be accepted by a simple <CR>. Those who do want to use the case title are
referred to the
"HELP"
command for details of display (the "PLAYBACK"
subcommand) and selective modification (some lines can be accepted without change
whereas others are changed).
10
Rulebook ATP (junio 1996 - internet)
H16
11
Vertical axis scaling (and limits) will normally be determined automatically
by the program. But there are times when a user will want to override this by
manual selection, and the "PEAK" subcommand serves this purpose. A typical
subsequent prompt would be:
VERTICAL MIN & MAX [
-0.800E+02
0.800E+02 ] :
where the existing Y-axis minimum and maximum are shown within square
brackets.
The first such usage will switch from automatic scaling to fixed
scaling. Send "0,0" to cancel previous manually-specified limits, and thereby
return to the original automatic scaling of the vertical axis.
The request to actually produce a plot takes the form of a specification of
a time interval of interest,
(t-beg, t-end).
It is possible to do this in
several ways. First, the "TIME" subcommand will result in a prompt for such
an interval.
A second choice is the use of
"ALL#TIME",
which will simply
produce a plot using all available data. A third option is "FRONT", which is
designed to plot only the most recently-produced points.
For convenience, the
user can append the required parameters to these commands, thereby bypassing the
subsequent prompt for them. For example, "TIME#0#50" is a request to produce a
plot over the time range (0,#50), and "FRONT#20" will produce a plot of only
the most recent 20 time units of data. A fourth alternative is "DRAW", which
just reuses the times of the preceding plot, whatever they may be. Choice of the
time units for a plot is under user control via the "TIMEUNITS" subcommand, to
which the user will add the appropriate integer code exactly as is used for
batch-mode plotting (e.g., "4" for milliseconds, etc.).
If no such change is
made, the time units will be installation- dependent, as set within the STARTUP
file (variables IHS and TIMULT).
In case the resulting plot is seen to involve consecutive, saw-toothed
oscillation, perhaps succeeded by a smooth trajectory down the middle, there may
be a need to change the control over the averaging of successive ordinates. The
"AVERAGE" subcommand allows for the change in the number of consecutive ups and
downs before automatic averaging is instituted. Parameter NSMTH is involved,
with the initial value set by the installation-dependent STARTUP file.
"ROLLV"##and##"ROLLC"##are used to turn vector and character plots,
respectively, into strip-chart recorders that will "roll" automatically along
with the simulation time.
Which command is appropriate will depend upon which
mode of plotting is in use ("MODE" chooses between the two).
Normally, the
"ROLLV"
or
"ROLLC"
subcommand will be the last input to plotting before a
return to
"SPY:"
prompt (by sending
"SPY"
in response to the
"PLOT:"
prompt).
Remember that the time scale of the subsequent rolling plot will be
determined by the last plot before the roll command, so this should be chosen
carefully. As for other attributes of the rolling plot, some can be changed on
the outside using the "TEK" command of SPY. The prompt will appear as follows:
SPY: TEK
>< To tamper with the ROLLing vector plot, send
>< OPTION (MARK, DELAY, PLOT, OVERLAP, MENU) :
choice.
For a quick summary of the options shown, send
"MENU".
The subcommand
"MARK" will immediately identify the curves by applying the appropriate letters
("a", "b", etc.). Use "OVERLAP" to modify the overlap between successive pages
of the continuing plot (parameter
OVRLAP
of the
STARTUP
file).
"DELAY"
allows modification of the size of the buffer that controls relative
instantaneity of the rolling plot (parameter
KSLOWR
of the
STARTUP
file).
Finally,
"PLOT"
transfers the user to the
"PLOT:"
prompt of
"PLOT"
--plenty of rope with which the user can hang himself (be careful of this one). So
Rulebook ATP (junio 1996 - internet)
much for the SPY command
plot from the outside is
H16
"TEK". Yet another SPY command that controls a rolling
"NOROLL" (to terminate the rolling).
"SMOOTH"##is used to modify the tolerance
TOLRCE
that allows for the
discarding of plot points. The initial value is installation-dependent, since it
comes from the STARTUP file.
"EXTREMA"##and##"LEVEL"##are not really a logical part of plotting, since
plots are unaffected by these subcommands.
But because implementation of the
associated functions was much easier inside of "PLOT" than it would have been
on the outside, these two commands are subcommands of "PLOT" rather than SPY
commands. At issue is the interactive tabulation of minima and maximum (in the
case of "EXTREMA") or level crossings (in the case of "LEVEL") of plot variables
over the time range of interest.
Normally there is no such output.
Sending
either command will toggle the associated binary switch that controls such
tabular output prior to a plot.
An illustration of the
"EXTREMA"
table
follows:
MPLOT
4
2
9
Name-1
GEN
TRAN
TRAN
Name-2
LOADG
Minimum
-6.92995E+01
-5.98629E+01
-2.02090E-01
Maximum
7.00000E+01
6.47100E+01
2.49046E-01
T of min
3.00000E+00
3.00000E+00
3.00000E+00
Actually, one column is missing on the right due to lack of space --- a
column entitled "T#of#max" (the time of the maximum). As for the first column,
the magnitude gives the variable number in the output vector, and any minus sign
means a reversal of polarity compared with the output vector.
The display of
"LEVEL" is transposed compared with this, with unlabeled columns corresponding
to the plot variables.
For the same three plot variables just shown, an
illustration follows:
Levels sought :
1st hit time :
1.50000E+00
1.54935E+00
-2.00000E+00
7.11894E-01
3.14000E-01
-9.99900E+03
"FOURIER"##is the gateway to interactive Fourier series computation.
The
basic mathematics and assumptions are identical to those of the
"FOURIER#ON"
option of batch-mode EMTP plotting (see Section XIV). Even the printed results
will be the same: a table of harmonic content in the LUNIT6 window. But instead
of the specification of parameters via a batch-mode plot card, within SPY "PLOT"
the controls are interactive, via the keyboard.
Also, at the end of any such
interactive Fourier computation, the user can interactively plot the magnitudes
of complex harmonics as a function of frequency in the form of a bar chart. This
requires vector plotting, however (see "MODE"). One simple restriction to the
use of "FOURIER" is that only one plot variable is allowed (i.e., the user can
only find the harmonic content of a single signal at any one time). There are
three prompts within the
"FOURIER"
subcommand, and this might be shown as
minimal documentation:
SEND T-beg, FREQ [ 0.0, 60. ] (END, PLOT, LIMIT) :
SEND H-beg, H-end (END, <CR>) [ 0
9 ] :
SEND V-max (<CR>, 0) [ 0.00000000E+00 ] :
The first of these seeks to identify the cycle of interest in terms of a
beginning time and the frequency.
There may be a slight delay following the
answer to this first prompt, as the Fourier series is computed, and the harmonic
table is displayed in the LUNIT6 window.
The second prompt asks for the
beginning and ending harmonic numbers for the bar chart. If the user wants no
such plot, he sends "END" to return to the first prompt. To exit the first
prompt, use "END", which will return to the "PLOT:" prompt. The third and
final prompt requests vertical-axis scaling information for the bar chart.
12
Rulebook ATP (junio 1996 - internet)
H16
13
Provided the signal frequency is equal to the power frequency, and the first ten
harmonics scaled to fill the vector plot window provide an adequate display,
three carriage returns (<CR>) will respond to these three prompts.
The use of
"SPY" to exit is not recommended, since it may leave certain control parameters
in an unnatural state, thereby adulterating the memory of "PLOT" (in case the
user wants subsequent graphs).
It is good practice to exit the Fourier
computation using "END" ... always.
"SHAFT"##is the gateway to interactive analysis of the loss-of-life of a
generator shaft due to an applied torque. It is a new plotting function that is
still undergoing experimentation and modification, so is not recommended for the
general public. But the general operation is easy enough to summarize. Shaft
torques can be predicted by the dynamic modeling of rotating machinery (see
Sections VIII and IX), so such a signal is assumed to be available for plotting
in the output vector when "SHAFT" is requested. Just as with "FOURIER", only
one output variable can be analyzed at any one time, and the shaft analysis is
provided in lieu of a plot. Normally the user will plot the torque first. Then,
having that picture in front of him, he will request a second pass of the same
data, during which loss of life is computed. With all diagnostic turned off, the
result will be a single summary message in the
LUNIT6
window having the
following form:
End of loss-of-life calculation for generator shaft torque.
TOTLOL = 0.00000000E+00
Data used for this fatigue calculation follows.
The number
of points of the fatigue curve, which came from disk file
SHAFT.DAT, is NPTLOL = 3.
The torque tolerance (for
ignoring relative extrema) is EPSLOL = 1.00000000E+01.
The fatigue curve itself, (TORQUE(J), CYCLES(J), J=1, NPTLOL),
follows:
1.00000E+05 1.00000E+00 1.00000E+03 1.00000E+01 1.00000E+00
1.00000E+02
As suggested by this output, there is an internal connection of a disk file
named
SHAFT.DAT,
which must contain data describing the shaft of interest.
This use of a fixed name and fixed I/O channel are temporary restrictions only,
as experimentation continues.
Once production usage begins, this can be
generalized.
But for now, the single disk file
SHAFT.DAT
must apply to the
torque of interest, and it must begin with one miscellaneous data card containing
two parameters:
D13
(columns 1-8)
EPSLOL
is the torque scaling factor, with
blank or zero is taken as unity;
(columns 9-16) is the torque tolerance below
which excursions are ignored.
This first card is to be followed by the torque-cycles characteristic.
consists of one point (a pair of numbers) per card, read as 2E16.0 data:
TORQUE
CYCLES
This
(columns 1-16) is the torque value of the next
point on the loss-of-life characteristic;
(columns 17-32) is the associated number of cycles
to crack at this level of oscillation.
Both of these values will always be positive. This characteristic is to be
defined for monatonically-increasing TORQUE, for which the associated CYCLES
value should be monatonically decreasing. The characteristic is to be terminated
by a card with TORQUE = 9999.
Rulebook ATP (junio 1996 - internet)
H16
"X-Y#PLOT"##toggles the binary control variable that chooses between normal
plotting as a function of time and the plotting of one variable against the other
as time increases. Since the program begins with normal plotting, the first such
use is a switch to X-Y plotting. For those with vector plotting capability, X-Y
plotting should be possible. But there is not yet any such capability for the
character mode of plotting. It could be provided upon demand, but thus far there
has been no demand. Immediately after the switch to X-Y plotting, there will be
a prompt for a horizontal axis title. The following illustrates this:
PLOT: X-Y PLOT
--- Toggle to "ON"
SEND X-AXIS LABEL [
(X-Y plotting)
...] :
The only other difference from a conventional plot will occur after the time
span of interest is specified.
At this point, the user will be prompted for
limits of both the horizontal and vertical axes before the plot is produced. The
following is illustrative:
PLOT: TIME 0 4
REVISE X-min,
REVISE Y-min,
X-max
Y-max
[ ] (OLD) : -100 100
[ ] : -100 100
"CURSOR"##is the gateway to logic that allows for the experimental
determination of ordinates and slopes of curves using some pointing and marking
device.
The logic was originally developed for the Tektronix 4014, which had
horizontal and vertical lines ("cross hairs") that could be accurately positioned
using two thumbwheels.
Do not attempt to use this feature unless it is known
that the capability has been implemented for the computer and vector-graphic
display device of interest.
XVI-C-5.
Command Files:
@K,
FILES,
COMMENT,
VERIFY,
TYPE
Much the way modern computer operating systems allow interactive user
commands to be built into disk files for execution as a group, so SPY allows the
modularization of commands. Disk files of spy commands will be called "command
files" (following the DEC VAX/VMS name). Such command files can be executed by
preceding an identification of the file by the "@" symbol (again modeled after
VAX/VMS).
Alternatively, there is a batch-mode connection to such files, too
(see $SPY of Section XVI-D).
There are ten special, reserved command files that can be accessed by a
single decimal digit (variable from 0 through 9). This is quicker than keying a
typical file name. To check on the existence of one or more of these, use the
"FILES" command, of which the following is an example:
SPY: FILE
File number :
INCLSPY?.DAT:
1
X
2
X
3
X
4
5
X
6
7
X
8
X
9
0
X
An
"X"
indicates existance of a given file,
whereas a blank indicates
nonexistence. This display also shows the real name of the disk files (the 5th
would be named INCLSPY5.DAT).
Command files can in fact be memory-stored rather than disk-stored, and this
provides for faster input in case of repetive input (looping within the file, via
the subcommand
"GOTO"
of the SPY command
"APPEND").
One way to load card
images from Disk to memory (the LUNT10 program card cache) is via the "COPY"
sub-sub-command of the "CARD" subcommand of the "SPACE" command of SPY. Once
in memory, a command file is executed by appending a slash ("/") in front of the
file identification, and using a LUNT10 card index for the file identification.
14
Rulebook ATP (junio 1996 - internet)
H16
15
For example, whereas "@2" will execute the disk-stored, second special command
file (shown in the next paragraph), "@/6350" is the command to execute whatever
command file begins in card number 6350 of the EMTP card cache (LUNT10).
Although the input from most disk-stored command files will continue until an
end-of-file is encountered (at which point control will be returned to the
keyboard), a software end-of-file is also possible.
This is simple enough:
"EOF" in columns 1-3 of a command line. Such usage is mandatory in the case of
memory-stored command files, of course.
Usage of command files can not be nested (i.e., no such command file can
itself contain an
"@"
command).
But other user aids are allowed, including
EMTP comment cards ("C#").
The SPY "COMMENT" command controls whether or not
such lines are seen in the SPY window (the initial choice is for such echoing).
In-line comments are also allowed, and are to be encouraged
(they make the
sequence of commands much more understandable to a human).
The Apollo symbol
"{"
has been reserved for this role
--- to mark the place where all input
records will be truncated.
For an example of such usage, see INCLSPY2.DAT in
the next paragraph. In case the user is so sure of the correctness of both his
program and his command file that he does not want to see commands as they are
executed, he can use the command "VERIFY", which toggles the binary switch that
controls such output.
Finally, a pounds sign ("@#") can be used for reserved
blanks, should such be needed.
When a command file ends (usually when input is halted by a hardware end-offile, although the software construct "EOF" will accomplish the same
termination), control is returned to the keyboard. But where? What should the
prompt be?
Because SPY is not smart enough to remember, it simply displays a
good guess, namely the frequent "SPY:" prompt. Just remember that this may or
may not be correct, depending upon where SPY control was at the instant data of
the command file was exhausted. There may be one erroneous prompt.
If "@" is to be the first SPY command, there is a more compact way of of
beginning execution.
As briefly mentioned in Section I-C, and illustrated in
Section XVI-A, the user could respond to the original program input prompt with a
character string following his "SPY" request, separated by one space. If the
appendage begins with "@", it will be taken as input to SPY rather than a file
name (as previously described in Section XVI-C-1). For example,
EMTP begins.
SPY @3
Send (SPY, file_name, DISK, HELP, GO, KEY) :
is the same as first sending only "SPY", and then subsequently sending "@3"
to SPY (for Apollo, this would be keyed in the separate SPY input window pane).
"TYPE"##allows for the inspection of a command file before that file is
executed. Actually, any ASCII disk file can so be inspected, including EMTP data
files.
But the most common use will be for command files.
If there is any
question about the content of a command file, it is better to find out before
execution (i.e., before it may be too late to make a correction).
An
illustration of such usage follows:
SPY:
Line
Line
Line
Line
Line
Line
SPY:
TYPE 2
1 : C
Begin INCLSPY2.DAT SPY command file that illustrates
2 : C
the use of an argument (albeit trivial).
3 : HELP
4 : %%%%%%%%
{ Argument is to be the SPY command of interest
5 : SPY
{ Exit the "HELP" command, returning to "SPY:"
6 : C
Bottom of INCLSPY2.DAT; EOF comes next
Rulebook ATP (junio 1996 - internet)
H16
Note the argument (the 8 percent signs on line 4).
If the user wants to
obtain information about the
"PLOT"
command of SPY,
he need only send
"@2#HELP".
This is particularly useful if the user has access to just a single
terminal of a time-shared computer.
For a more flexible workstation such as
Apollo, the utility is limited because the operating system provides for
multitasking, and the user could independently view the file via the system
editor.
As just illustrated, parameters or arguments of command files are allowed.
Free-format input is used, with a comma (",") separator in the case of two or
more.
Temporary restrictions include a length limitation of 8 bytes for each
argument, a maximum of 10 arguments, and a line length (for the "@" command) of
not more than 80 columns. Within the command file, usage of arguments is marked
by strings of eight percent signs ("%"). Of course, there must be a one-for-one
correspondance between the arguments of the call (the "@" command) and the "%
%%%%%%%" fields within the command file.
XVI-C-6.
EMTP Variables:
EXAMINE, NAMES, ROLL, LIST, FIND, DEPOSIT
Somewhat analogous to "symbolic debuggers" of modern computer systems, SPY
can observe or modify any variable of EMTP tables of the solution overlays. It
is the "EXAMINE" and "DEPOSIT" commands of SPY that allow this. Yet there
are two fundamental differences:
1)
the simulation can not be halted at an arbitary line of an arbitrary
subroutine, and
2)
only variables that are stored in COMMON blocks (not local variables) are
accessible.
In order to find where variables are stored, and what the names are, the commands
"LIST" and "FIND" have been provided.
The "EXAMINE" command began with keyboard orientation, but has since been
converted into a structure that is better adapted for use within command files.
For workstations having windows, this is no handicap, since a command file can be
edited at the same time the program is executed.
Specific rules of usage for
"EXAMINE" could be figured out from the "HELP" text, of course. But for the
casual user who wants to begin operation rapidly, it is easier just to copy and
modify some established command file that already uses the feature.
As an
illustration, consider
INCLSPY1.DAT,
which contains considerable explanatory
annotation.
Most of this concerns definition of the variables that are to be
observed ("EXAMINE" input).
At the end, there is the command to display the
variables ("NAMES"):
C
Begin
EXAMINE
CUT 0
ADD
ISTEP
TMAX
LUNIT4
T
NCHAIN
TWOPI
END
TABLE
FORM
1 6
2 8
3 7 -6
SHOW
END
INCLSPY1.DAT by building a fixed debugging table
This SPY command enters the world of "EXAMINE" choices
Reset table length to zero (in case of previous usage)
Go into "append mode", adding to bottom of "EXAMINE" table
First EMTP COMMON variable to be placed in "EXAMINE" table
2nd
EMTP COMMON variable ....
3rd
EMTP COMMON variable ...
4th
EMTP COMMON variable ....
5th
EMTP COMMON variable ....
6th
EMTP COMMON variable ....
Exit loop over EMTP variable names (back to choices)
Display all variables of "EXAMINE" table now defined
Process entries of "EXAMINE" table, so ready for later use
1st variable is to have its width expanded to 6 columns
2nd variable is to have its width expanded to 8 columns
3rd through 6th variables ..... expanded to 7 columns
Confirm that these 5 modifications have been made correctly
Break out of "FORM" loop, moving back to "EXAMINE" choices
16
Rulebook ATP (junio 1996 - internet)
H16
17
SPY
Back to "SPY:" prompt (done with "EXAMINE" usage)
NAMES
Display heading for variables, followed by current values
C
That's all there is; EOF comes next; Exit INCLSPY1.DAT next.
Since the in-line comments explain most of this, such description will not
be repeated here. However, this says little about the different SPY prompts to
which these lines are responses.
The result of
"@2"
should document the
prompts better than words:
SPY: EXAMINE
CHOICE (TABLE, WIDTH, CUT, NEW, ADD, COPY, FORM, SHOW) : CUT 0
CHOICE (TABLE, WIDTH, CUT, NEW, ADD, COPY, FORM, SHOW) : ADD
SEND EMTP VARIABLE: ISTEP
SEND EMTP VARIABLE: TMAX
SEND EMTP VARIABLE: LUNIT4
SEND EMTP VARIABLE: T
SEND EMTP VARIABLE: NCHAIN
SEND EMTP VARIABLE: TWOPI
SEND EMTP VARIABLE: END
CHOICE (TABLE, WIDTH, CUT, NEW, ADD, COPY, FORM, SHOW) : TABLE
Row Name INTOUT LOCOUT
IMIN
IMAX 6 = NUMEX
1 ISTEP
1
45
1
1
2 TMAX
0
20
1
1
3 LUNIT4
1
119
1
1
4 T
0
18
1
1
5 NCHAIN
1
77
1
1
6 TWOPI
0
19
1
1
CHOICE (TABLE, WIDTH, CUT, NEW, ADD, COPY, FORM, SHOW) : FORM
Triplets of (index, width, text). NUMEX = 6.
1 5 ISTEP
2 6 TMAX
3 6 LUNIT4
4 6 T
5 6 NCHAIN
6 6 TWOPI
SEND K-index, K-width (END, SHOW; "-KEND use") : 1 6
SEND K-index, K-width (END, SHOW; "-KEND use") : 2 8
SEND K-index, K-width (END, SHOW; "-KEND use") : 3 7 -6
SEND K-index, K-width (END, SHOW; "-KEND use") : SHOW
Triplets of (index, width, text). NUMEX = 6.
1 6 ISTEP
2 8 TMAX
3 7 LUNIT4
4 7 T
5 7 NCHAIN
6 7 TWOPI
SEND K-index, K-width (END, SHOW; "-KEND use") : END
CHOICE (TABLE, WIDTH, CUT, NEW, ADD, COPY, FORM, SHOW) : SPY
SPY: NAMES
ISTEP TMAX
LUNIT4
T
NCHAIN TWOPI
79
.1E20
-4
3.95
18
6.2832
{ 1}
It is only the final two lines that normally would be of interest to the
user: output of the "NAMES" command. These show that the simulation is on time
step number ISTEP#=#79, which corresponds to simulation time T#=#3.95 seconds.
The end-time of the simulation will never be reached (TMAX = 1.E19 is set
internally for all SPY usage).
The overlay number
NCHAIN
is 18 (within the
time-step loop),
variable
TWOPI
is hardly a surprise,
and
LUNIT4
being
negative means that plot data points are being held in memory rather than being
written to I/O unit number LUNIT4. The number "1" within braces on the right is
a line number. Here, only a single line was required, but for more variables,
two or more lines might be required. SPY provides for this automatically.
After the variable definition of
"EXAMINE",
the user can request the
display of variable values at any later time. As already seen, this is done by
the SPY command "NAMES", which results in a display of the variable headings as
well as the current variable values. If only current variable values are wanted,
a <CR> should be used instead.
A final variation of observation is provided
Rulebook ATP (junio 1996 - internet)
H16
by the SPY command
"ROLL",
which "continuously" (at every SPY opportunity)
watches the output variables, and only produces an output if one or more
variables has changed since the last check.
If one of the variables being
examined is expected to change every time step, beware (the output can be fast
and voluminous)! To cancel such "ROLL" operation, use "NOROLL" (which also
will cancel any rolling plotting).
Numbers of the
"EXAMINE"
output are optimally encoded within the
available, user-controlled space.
It is input to the "FORM" subcommand that
defines the column width.
So, if 12 decimal digits were wanted for
TWOPI
instead of the five that are shown, this could have been requested. The ability
to tailor output precision to user needs is a powerful feature of the new
"EXAMINE".
Another advantage is the ability to make selective changes (e.g., a
correction) without redefining the whole display.
The
"LIST"
and
"FIND"
commands are useful in determining what the
available variable names are, and where such data is stored in the computer
memory. Consider first several lines of a representative "LIST" display:
SPY: LIST
Row
Number
10
11
12
Symbol
Word
Name
Address
TCLOCK 1204348
ABUFF
1187434
CI1
1201032
Vector?
(Yes=1)
1
0
0
Ascii?
(Yes=1)
1
80
0
Next
: 10,12
687
Symbols
:
The heading (lines 2 and 3) shows that 687 distinct symbols are available to
the user.
Had the user sent
"ALL"
instead of
"10,12"
in response to the
prompt of the heading, he would have received all 687 rows instead of just rows
10 through 12.
The "Word Address" column shows the result of memory location
function
"LOCINT"
applied to the symbol in question.
The next column
distinguishes between vectors and scalars (note that only TCLOCK is a vector).
Finally, there is a distinction between numeric and CHARACTER variables. The
zero for
CI1
signifies a numeric variable, whereas the unity of TCLOCK is a
special positive symbol indicating
ALPHANUMERIC
(A6) usage.
Positive values
other than the special value of unity are byte lengths (note that ABUFF is for
80-column card images).
But what if the user does not know where a symbol of
interest is located? The "FIND" command will locate the row number, as shown
by the following example:
SPY: FIND
Symbol
index
11
657
Word
address
1187434
1133096
Address
change
1187434
-54338
Next
symbol : ABUFF
: KODEBR
:
The output is produced one row at a time, as the user requests a different
symbol. The first request was for ABUFF, note, and the second was for KODEBR.
The wild card "*" is honored here much as it is for VAX/VMS directory commands.
So, if the user wanted to find all symbols that contained the character string
"BUS", he should key "*BUS*".
"DEPOSIT"##allows the user to change the contents of any cell of the EMTP
tables.
Of course, some changes to EMTP variables will be common enough that
special code has been written for that purpose. An example is the SPY command
"IOUT", which shows the user the current value of this variable at the same time
it prompts him for a revised value. If such a dedicated command exists, and will
perform the desired modification, it is preferable.
But often no such
specialized command exists, in which case "DEPOSIT" must be used.
18
Rulebook ATP (junio 1996 - internet)
H16
19
Just as with "EXAMINE", the memory location or locations of interest are
identified to
"DEPOSIT"
by means of a symbol name and a subscript range
(allowing vector deposits). There is a lot of power here, so the user should be
careful.
Those who do not know much about the internal workings of the EMTP
really should use this tool only after having been advised by some EMTP expert.
In any case, an illustration follows:
SPY: DEPOSIT
SEND EMTP VARIABLE: IPRSUP=9
SEND EMTP VARIABLE: VOLTI(3:5)=0.0
SEND EMTP VARIABLE:
Two operations are shown here: first a scalar change, and second a vector
change (zeroing cells 3 through 5 of vector VOLTI).
While most commonly
subscripts will only be applied to a vector, no such program restriction exists.
For example, if the user wants to see what integer is located one word beyond the
scalar IPRSUP, he could examine IPRSUP(2). This works with either "EXAMINE"
or "DEPOSIT".
XVI-C-7.
Table Dumping/Restoring:
SAVE,
RESTORE,
SLEEP,
WAKE,
WHEN
Table dumping is the saving of every state variable of an ongoing EMTP
simulation.
The subsequent reloading of the copy of variables into original
locations in memory is called table restoration.
Such table dumping and
restoration can be accomplished interactively using the "SAVE" and "RESTORE"
commands of SPY, which allow the user to back up time on the simulation clock
(assuming that simulation time will advance between the time of saving and the
time of restoration).
Any interactive simulation that involves the repetitive
solution of the same basic problem, only with some parameter (e.g., some control
system gain) altered between successive solutions, will normally require such
table dumping and restoring. After table restoration, but before the simulation
is actually restared, the user normally will modify EMTP variables somehow (e.g.,
using the
"DEPOSIT"
command of SPY).
After all, the user normally has no
interest in solving the identical same problem twice.
The just-mentioned
"SAVE"
and
"RESTORE"
commands of SPY are for use
during a single program execution.
The resulting storage of EMTP tables is
volatile, and it will disappear if either execution is terminated, or if the
computer crashes. Should the user want to save tables permanently, then it is
the SPY
"SLEEP"
command that he should use.
This is nothing more than an
interactive connection to the batch-mode feature involving integer miscellaneous
data parameter MEMSAV#=#1 (see Section II-B). To restart such a sleeping EMTP
simulation, use the SPY "WAKE" command, which is the interactive equivalent of
the batch-mode "START#AGAIN" request (see Section II-A).
The "WHEN" command allows the user to delay table saving or restoring until
some later, user-specified time. The user merely follows the request word by the
time
T-when
in seconds, separated by one or more blanks.
The following
illustration is typical:
SPY: when .150
Time of "SAVE/RESTORE"
changed from 0.00000000E+00
to 1.50000000E-01
Note that the user keyed the command in lower-case, which was acceptable
because KINSEN#=#1 of the STARTUP file instructs the program to convert all
lower case to upper case.
The confirmation line shows both the old and new
values for the time of table handling T-when. The initialization value of zero
(meaning no delay for table handling) will always be in effect unless the user
modifies it as in this example.
Rulebook ATP (junio 1996 - internet)
H16
Illustrative usage of "SAVE" and "RESTORE" can be found in standard SPY
command file number 3, which runs itself. Just send "@3" in the SPY window at
the first opportunity, and sit back and watch the show. Just remember that it is
an illustration, not a practical application: no variables are altered following
table restoration.
The speed of table dumping and restoration is highly dependent upon
computer system.
It is DEC#VAX for which we have found the ideal solution (a
single block transfer from memory to memory for the dominant "LABCOM" portion of
tables), so VAX is the model for other systems.
Apollo is still slow, due to
random ordering of the COMMON blocks of "LABCOM". More work is needed (we have
ideas, but just have not found the time to do the work). For a system that is
painfully slow, the interactive user of
"SAVE"
and
"RESTORE"
will want to
minimize EMTP table size by carefully choosing his input List Sizes for "VARDIM"
(see Section I-G).
XVI-C-8.
"DICE"
for Statistical Tabulation of Monte Carlo Simulation
The
"DICE"
command is meaningful only when the ongoing simulation is a
Monte Carlo ("STATISTICS") study.
If such a data case were to be executed
without SPY, the requested number of energizations
NENERG
(integer
miscellaneous data parameter of Section II-B) would be simulated, followed by
statistical tabulation of the variables of interest (as requested by data of
Section XII-B).
But when using SPY, the number of energizations is set to
infinity internally, so it is the user's responsibility to exit the tight loop
when he believes answers are smooth enough for his needs. The "DICE" command
allows the user to preview the statistical tabulations that normally would be
delayed until all simulations are complete.
Resulting statistical displays
will, of course, be based only on those energizations that will have been
completed at the instant of use, however.
Variable selection and scaling information for the "DICE" display must be
built into the data case just as would be required for batch-mode usage. In case
changes to such data are desired during execution, edit the disk file of data
cards in a separate window (assuming the user has a workstation such as Apollo),
and then reload the file using "DATA". When doing this, just be careful not to
add or remove any cards prior to the requests for statistical tabulation, since
the card number of the first request for statistical tabulation must remain
unchanged.
The EMTP itself only provides for LUNIT6 character output of the statistical
results.
But users of a flexible workstation such as Apollo should have the
nicer, vector-graphic alternative, thanks to the inspiration and research of
Mr.#E.#J. Michelis of KEMA (Arnhem, The#Netherlands).
This involves the
simultaneous usage of a separate supporting program "STATPLOT",
and "cut and
paste" capability of the operating system software.
For details, refer to the
Apollo Section I-F-1.
The termination of a Monte Carlo study will depend upon what more the user
wants by way of output.
Using SPY, the user will from time to time issue a
"DICE"
command, in order to see how smooth results have become.
Once he is
satisfied that distributions are close to assymptotic limits, it only remains to
be decided how execution is to be terminated.
The quickest way would be an
operating system interrupt via the keyboard (e.g., VAX/VMS CTRL-Y or Apollo CTRLQ).
Equally effective and nearly as quick is the
"SPY"
stop command.
But
either of these quick exits will result in a loss of the small character plots of
switching times that normally conclude statistical tabulations. There also would
be a loss of the case summary statistics. In order to avoid such a loss, the SPY
command "DEPOSIT" should be used to set variable NENERG equal to the current
energization number, thereby allowing a natural exit of the Monte Carlo loop
20
Rulebook ATP (junio 1996 - internet)
H16
21
after completion of the current energization. This number should be one of the
last outputs to LUNIT6 (at the end of the last line that begins: "Random
switching times for energization number").
The final consideration is about
possible table saving.
Rather than ending execution definitively, one can put
the Monte Carlo simulation into hibernation by setting MEMSAV#=#1 at the same
time NENERG is altered, if the input data (integer miscellaneous data card) did
not set this switch at the very start.
XVI-C-9.
Mathematics within Command Files:
"APPEND"
The "APPEND" command provides a gateway to mathematics at the SPY command
level.
Although much more is possible, and extensions may be more fully
developed in the years ahead, the dominant present use is for counting,
incrementing, comparing, and jumping --- the ingredients required for looping
within command files, and the modification of EMTP data within such a loop.
Even before considering what any of the details mean, it might be
informative to look at a simple example. The standard command file INCLSPY8.DAT
provides an illustration:
APPEND
{ Issue SPY command to enter the world of "APPEND" subcommands
MENU
{ Confirm we are inside "APPEND" by display of possible subcommands
SET PRI=4 LEN=1 VAL=0.0
{ Initialize REG(4), APPEND reg. number 4, to 0
SET PRI=5 VAL=1.0
{ Initialize REG(5), APPEND register number 5, to 1
SET PRI=6 VAL=2
{ Initialize REG(6), APPEND register number 6, to 2
ADD PRI=4 SEC=5 LEN=1 STN=3478 { Top of loop : REG(4) = REG(4) + REG(5)
KEY PRI=2 MES=SEND_REG(2):
{ Pause for unused keyboard input to REG(2)
LOOK PRI=1 LEN=12
{ Display the contents of REG(1) through REG(12)
IF
PRI=4 .LT. SEC=6
{ If REG(4) is less than REG(6), then
GOTO LAB=3478
{ loop back four lines (to top of loop to increment again)
END
{ Exit "APPEND" command, returning to "SPY:" prompt
TIME
{ Confirm that we have "SPY:" by issuing this simple SPY command
The reader is encouraged to execute this file ("@8") on his own computer.
There is a loop that will be traversed twice, and each time execution is halted
to allow the user to key a number that will be deposited in register number 2.
Use distinctive numbers (e.g., "98765"), so that they can be easily recognized
in the subsequent display of register contents.
Ideally, one would prefer FORTRAN-like capability for the mathematics of
SPY. Eventually this may come, much as it already has for TACS (thinking of TACS
supplemental variables). But SPY "APPEND" usage is just in its infancy, and
something more like assembly language is all that is being provided now.
Numerical values must be stored in one of a fixed number (presently 58) of
special registers that are identified by a number. Arithmetic is performed only
on one or more of these registers. Finally, conditional execution depends on the
relative size of two register contents.
Once inside the "APPEND" command, a list of the available subcommands can
be generated by sending "MENU". The result is as follows:
SPY: APPEND
>: MENU
IF
LOAD
INIT
GOTO
USE
KILL
UNUSED COMP
ADD
SUB
CARD
KEY
END
MUL
TAGS
LIB
DIV
MENU
LOOK
COPY
MAP
SET
While this is an imposing list, it is possible to understand the overall
idea rather quickly by means of a few examples and the summary description of a
few general classes of operation.
Rulebook ATP (junio 1996 - internet)
H16
Whereas registers are referred to by number, most often only two registers
are involved. For example, one can add the content of one register to another,
or one asks whether one register is equal to another. For most such usage, the
two registers of interest are referred to as primary and secondary registers,
respectively.
Symbols are used in that the user first defines these two
registers using "tags" such as PRI=3 and SEC=4 (to have register number 3 be
the primary register, and register number 4 be the secondary register.
Other
tags are possible, as illustrated by the following "APPEND" line that uses four
tags to describe an addition operation:
ADD
PRI=34
SEC=44
LEN=3
INC=1
The "ADD" is the "APPEND" command for addition, with the four tags giving
the location and extent of this operation.
Vectors are involved, and the tag
LEN=3 says that these are of length three. Just as FORTRAN DO-loops can skip
cells, so can such vector operations, although such is not being done in this
example (the tag
INC=1
says that consecutive registers are involved.
By
definition of the addition command, the primary register is to have the secondary
register added to it.
Hence registers 44, 45, and 46 are to be added to
registers 34, 35, and 36, respectively. Tags must be separated from the command
(if any; here, from the "ADD") and from each other by one or more blanks. The
command (if any) must come first, and must begin in column one. Thereafter, tags
can be placed in any order, and are free-format (except that imbedded blanks
within a tag are not allowed, since blanks terminate one tag and start another).
"IF"##usage allows for the conditional execution of the following command,
if and only if the content of the primary register is related to the content of
the secondary register by the appropriate relational operator.
Identical to
FORTRAN, six relational operators are recognized:
.LT.
.LE.
.NE.
.EQ.
.GE.
.GT.
and these must appear somewhere to the right of "IF" (a tag is not used for
these operators, note).
Just be sure that the relational operator has one or
more blanks before and after it, and no imbedded blanks (between the bounding
periods). As an illustration, consider:
IF
PRI=4 .LT. SEC=42
This is equivalent to the FORTRAN condition
IF ( REG(PRI) .LT. REG(SEC) )
Should the condition of the relational operator not be satisfied, then the
following "APPEND" command (line of the command procedure, usually) will be
discarded. Unlike FORTRAN, the following statement which is to be conditionally
executed must always occupy the following line (it can not be added to the line
carrying the "IF", nor can it extend to several lines via continuation).
"GOTO"
provides for an unconditional transfer to another line of the
command procedure that is being executed.
But unlike the column 1-5 statement
number of FORTRAN, the destination here need only be uniquely identified by an
alphanumeric string of up to six characters.
It is tag "LAB" which identifies
the destination of the jump, whereas tag "STN" must appear on the line to which
control is to be transferred. Take two such lines out of INCLSPY5.DAT:
ADD PRI=4 SEC=5 STN=3478
GOTO LAB=3478 LEN=1
22
Rulebook ATP (junio 1996 - internet)
H16
23
The first of these is the top of the loop, and is identified by the
character string "3478".
The line itself requests the addition of register
number 5 to register number 4.
The second line involves an unconditional
transfer of SPY control to the first line.
The tag
"LEN=1"
sets the vector
length to unity for the just-described register addition. By combining integer
counting with "IF" and "GOTO", one has a loop, of course.
"ADD", "SUB", "MUL", and "DIV" are the basic arithmetic commands within
"APPEND".
Vector operations are involved (the "LEN=" tag defines the length),
as is possible incrementation of indices by other than unity during the vector
operation (use the tag "INC=" to control this). The four summary definitions
in equivalent FORTRAN are, respectively:
REG(PRI+K) = REG(PRI+K) + REG(SEC+K)
REG(PRI+K) = REG(PRI+K) - REG(SEC+K)
REG(PRI+K) = REG(PRI+K) * REG(SEC+K).
REG(PRI+K) = REG(PRI+K) / REG(SEC+K).
For scalar operations (the common case), "K" would be zero in
these defintions, and there would be no loop incrementing it.
"LIB"##is used to apply a library function to registers beginning with the
primary register.
The
"LEN="
tag controls the number of registers in this
vector application. As for the function, it is selected by a "FUN=" tag, with
the following choices allowed to the right of the equal sign:
"EXP"
"SQRT"
"RAN"
"TIME"
"COS"
"PI"
"ABS"
"INT"
-----------------
the EMTP library function "EXPZ" (exponential);
the EMTP library function "SQRTZ" (square root);
the EMTP library function "RANDNM" (random number);
the current EMTP simulation time T in seconds;
the EMTP library function "COSZ" (cosine);
the circular constant, equal to 3.14159265 ...
the EMTP library function "ABSZ" (absolute value);
integer truncation (removal of fractional part).
If the reader`s favorite function is missing, complain, since it is
trivial to expand the set arbitrarily (only 2 lines of FORTRAN are
required for each function).
"SET"##allows the user to load registers with constants. This is a vector
operation, beginning with the primary register.
The value of the constant is
defined using the "VAL=" tag. An illustration follows in the next paragraph.
"COPY"##allows the user to transfer the contents of one append register to
another.
The transfer is from the primary to the secondary register, and a
vector operation (tags "LEN=" and "INC=" are applicable).
"LOOK"##provides observation of register contents.
This is a vector
operation, beginning with the primary register. As an illustration, consider the
definition and observation of three registers:
>: SET PRI=12 LEN=3 VAL=3.14
>: LOOK
Register contents follow. 1st and last =
12
12
0.314000E+01
0.314000E+01
0.314000E+01
14
"KEY"##allows register definition from the keyboard.
This would normally
only be used in the middle of a command file. Three tags control the operation.
First, "PRI=" and "LEN=" define the range of contiguous registers (a vector),
Rulebook ATP (junio 1996 - internet)
H16
and also the number of free-format values that are to be read from the keyboard.
Finally,
"MES="
defines a prompt of up to 80 columns, without any imbedded
blanks. Without such a prompt, the EMTP user might not know that he was supposed
to key some numbers. Or, in the case of two or more requests, he might not know
which of the multiple inputs was involved.
As a degenerate special case of
"KEY" usage, rather than from the keyboard, the required input can be read from
the following "APPEND" line (of a command file, normally). Use "MES=NONE" as
special request for this in-line data, which may sometimes be simpler or clearer
than the use of "SET" for loading registers with numerical values.
"CARD"##allows the numeric modification of some data field of a group of
EMTP data cards that currently is stored in the card cache of LUNT10. The six
required integer parameters come from tags, as follows:
PRI --SEC
BEG
END
MOD
LEN
INC
-------------
Number of the register that is to be used. The numeric
contents of this are to be encoded on a data card.
LUNT10 number of the card at which modifications begin.
Beginning column number of the data field to be defined.
Ending
column number of the data field to be defined.
Mode of the numeric encoding: 0=Real, 1=Integer.
The number of consecutive cards to be so modified.
To increment PRI in cases of LEN > 1, so that
the number being deposited is varied as the card is.
It is in conjunction with the
"BEGIN"
command of SPY that this
"CARD"
subcommand of "APPEND" will normally be used. The concept is simple enough.
Whereas "DEPOSIT" allows the arbitrary tampering with EMTP tables, some network
parameters are buried so as to be inaccessible within the time-step loop. As a
result, it is not possible to change such parameters as a simulation is
advancing.
But it is possible to restart such a simulation at time zero with
altered data.
This can all be done automatically with a command file.
Via
arithmetic of "APPEND", the next desired value of some network parameter is
computed.
This value then is deposited on the card image of interest, after
which the solution can be restarted.
The result is quite arbitrary parametric
studies --- an enormous extension over the one such specialized application that
has been hard-coded into EMTP FORTRAN: Monte Carlo studies). As an example of
practical interest, consider variation of the inductance of a smoothing reactor
of an hvdc filter. An illustration has been built into INCLSPY5.DAT ("@5").
"MAP",
"LOAD",
"INIT",
"KILL",
"COMP",
and
"USE"
all are commands
that are associated with communication between append registers and the outside
world (i.e., either EMTP tables, or a synchronized parallel process.
Yet such
usage is still highly experimental, and it is not simple.
Further, it is
dependent upon computer.
As a consequence, it is not recommended for anyone
other than program developers at the present time. On the other hand, it should
be understood that such capability is seen as one possible way to improve the
present CSP (concurrent sequential processing) capability of the present "TACS"
command of SPY. Refer to Section XVI-C-12 for additional comment about the idea
of CSP.
XVI-C-10. "RAMP" and "SERIES" for Continuous Linear Variations
Some EMTP variables can be changed instantly from one value to a completely
different value without difficulty. An example would be the flashover voltage,
or the closing time, of a switch. For such cases, the "DEPOSIT" command of SPY
is appropriate, since this is the way it operates: instantly and discontinuously.
On the other hand, there are variables that must only be altered slowly and
smoothly. An example might be the inductance of some series R-L-C branch. In
order to avoid abrupt changes, the "RAMP" command was devised. It allows the
24
Rulebook ATP (junio 1996 - internet)
H16
25
user to specify an arbitrary number of beginning and ending times, and beginning
and ending parameter values, for linear variations that will occur each time
step.
Storage for such usage is appended to the U.M.#working space after any
normal machine storage, so any such intensive user might consider augmenting List
Size#25.
The "SERIES" command provides special logic to connect with the
"RAMP"
command for the variation of series R-L-C branches only. These are common and
important enough to deserve special logic of their own. Although discontinuous
variations are also allowed, the smooth, ramped change is the more useful and
common, probably. At any point prior to overlay 12, the user must declare his
intention to tamper with series R-L-C branches by issuing the
"SERIES"
declaration.
Then the program will pause in overlay 12 to allow the user to
select those branches that he might later want to vary.
The help command
provides more details of this high-level command.
Yet before the potential user becomes too excited about the powerful idea of
ramping EMTP parameters, it should be pointed out that many variables are
effectively inaccessible to him.
Although he can go through the motions of
ramping such variables, the result will not be what it should be because other,
unknown program variables that depend upon the ramped variables are not being
modified at the same time. The classic case is the time-step size DELTAT, upon
which many, many other variables depend. Do not try to ramp DELTAT as shown in
a following example, since no good can come of it.
Those who are not familiar with internal program structure (i.e., EMTP
FORTRAN) are to be discouraged from using "RAMP" for any but the simplest case.
Even the veteran developer may need to think a little, and use some trial and
error. There are two supporting SPY commands that should be considered at the
same time, namely "SERIES" and "YFORM". The first of these should always be
used if the parameters of a series R-L-C branch are being ramped, since then the
nodal admittance matrix [Y] will be appropriately modified each time step, and
that matrix will also be retriangularized. Unfortunately, such quality support
for other components is lacking, so if the user knows that [Y] formation and
triangularization are required at each time step, he must request it himself,
manually.
A final potential peril might be mentioned. Actual ramping of variables
is handled within SUBROUTINE ANALYT of "ANALYTICAL SOURCES USAGE" fame. But
this is an installation-dependent (see Section I-E-1). Hence any intended user
of
"RAMP"
should check that ramping logic has not been removed by those
responsible for maintaining the program.
There are three basis prompts of
shown:
"RAMP",
and these are nested in the order
SPY: RAMP
SEND "T-begin", "T-end" (END, SHOW, REWIND) :
SEND "F-begin", "F-end" (END) :
SEND EMTP VARIABLE:
Actually, the final prompt is from "DEPOSIT" to which this "RAMP" logic
jumps in order to input and identify the variable. Just as with "DEPOSIT", a
vector response is acceptable.
An example would be
"TX(3:5)",
which would
result in the simultaneous ramping of three consecutive cells of the TX vector.
The order of nesting is intentional. Variables can be specified one after the
other as long as both time (the outer loop) and ramp value (the middle loop)
remain applicable. When this ceases to be true, send "END" in response to that
inner-most prompt and there will be a return to the middle prompt for beginning
and ending parameter values. If these "F" values are changed, there will be an
Rulebook ATP (junio 1996 - internet)
H16
26
automatic return to the inner level for more variables. On the other hand, if
times must be changed, or if the user is done specifying ramps, sending "END"
in response to the middle prompt will return to the outer prompt for times. To
erase all previous usage, send
"REWIND".
To produce a summary table of all
ramps, send "SHOW", of which the following is an illustration:
Row
1
2
Name I-beg Length
T-begin
T-end
F-begin
F-end
TX
3.
1.
0.15000E+01
0.25000E+01
0.50000E+07
0.70000E+07
DELTAT
1.
1.
0.75000E+00
0.90000E+00
0.50000E-01
0.75000E-01
No RAMPing before 7.50000000E-01
or after 2.50000000E+00
sec.
It is always prudent to produce this output as the very last operation prior
to returning to the "SPY:" prompt (by sending either "SPY" or "END"). This
is because it is much easier to spot errors from such a table than it is by
reviewing the voluminous input. Note that whereas the user inputs beginning and
ending subscripts, the table show the beginning index (unity for a scalar) and
the length of the vector that is being ramped. The final line reminds the user
of when the first ramp will begin and the last ramp will end.
XVI-C-11.
Utilities:
HEADING, TIME, SIZE, LIMIT, HONK, ECHO, WAIT, $, OS
"HEADING"##is the command to produce a new heading for the time-step loop
output in the LUNIT6 window. It may be that the user has many output variables,
and can not remember which is which. Even if the window can be scrolled backward
to find the normal heading, it may be more convenient just to regenerate the
heading via this command.
"TIME"##is primarily designed to show the current simulation time
T
(a
variable of "BLKCOM"). But since this hardly requires a whole line, the timestep size, the end time TMAX of the study, and the wall-clock time, have all
been appended.
In case the user wants to check the responsiveness of SPY to
keyboard inputs, or to reassure himself that SPY is still alive and well, this is
a good, simple command to use. An example follows:
SPY: TIME
T = 0.200000E+00
TMAX = 0.1000E+20
DELTAT = 0.5000E-01
07.58.44
"SIZE"##and##"LIMIT"##are two simple utilities related to EMTP List Sizes
(see Section I-G). Both result in displays of 27 numbers, with 10 numbers per
row.
The difference is that
"SIZE"
shows the current actual burden on EMTP
tables, where as
"LIMIT"
shows the table dimensioning.
Just as with case
summary statistics, if no figure is available, a "-9999" should be displayed.
The following illustration was produced during the solution of a slightly
modified version of BENCHMARK DC-4:
SPY: SIZE
5
5
18
9
0
0
SPY: LIMIT
252
300
50
50
100
150
6
-9999
6
2
-9999
1
9
-9999
-9999
0
0
-9999
695
0
-9999
0
0
1
23
10
0
500
5000
4000
100
-9999
3
2500
-9999
400
40
40
50
1375
4
50
1750
5
75
1600
160
660
"HONK"## is the SPY command that rings the bell of the computer monitor.
The following integer, separated by at least one blank, indicates the amplitude
of the alert.
More detail about this is impossible due to the installationdependent nature of the servicing SUBROUTINE HONKER. An illustration follows:
SPY: HONK 5
Rulebook ATP (junio 1996 - internet)
SEND SEVERITY LEVEL OF ALERT (1 TO 10) : 3
Audible alarm began at 02-Apr-88 23.17.38
H16
5
27
bells.
The convention is that zero produces no response, while 10 indicates a
disaster (with this latter warning continuing indefinitely until suspended by a
user-keyed interrupt). The user will normally avoid the use of ten, which was
designed for internally-generated program alarms (e.g., when program storage for
plot data has overflowed). As for the mode of usage of "HONK", it will almost
always be in a command file, for those cases where there is a need or desire to
attract the attention of the operator (who may not be looking at the monitor).
"ECHO"##is designed to accumulate keyboard input during testing, so that
once an interactive control sequence is perfected, a command file can be
established without the necessity of rekeying all of the commands. Also, "ECHO"
provides a very compact history of what the user has been doing. An illustration
follows:
SPY: ECHO
SEND DESIRED OPERATION (BEGIN, FILE, SHOW) : SHOW
Compacted listing (between "/") of 21
stored commands follows.
/ TIME / BRANCH / ALL / SPY / FILES / TYPE 1 / @1 / HEADING
/ LIST / 255,260 / SPY / SIZE / LIST / 1,5 / SPY / LIMIT / BREAK
/ -150 / GO / ECHO / SHOW
SEND DESIRED OPERATION (BEGIN, FILE, SHOW) :
In this case,
"ECHO"
was first requested some 21 SPY commands earlier,
when SPY input began to accumulated. At that first usage, the response to the
prompt was "BEGIN" --- to begin the accumulation. This time, the request was to
"SHOW" the accumulation to date. To terminate such accumulation, send "FILE".
There will be an opportunity to save the accumulation in a disk file, but this
probably would never be most convenient for the worstation user having "cut and
paste" capability. If no disk file is desired, send just a <CR> in response to
the prompt for a file name.
"$"##is the SPY command to send the input line into "CIMAGE" for processing
as a conventional $-card of batch-mode usage (see Section I-D).
Only the dollar
sign in column 1 is mandatory, with all other characters of the line left for
"CIMAGE" usage.
For an illustration,
use
"@9"
(INCLSPY9.DAT).
The most
common usage is to turn on DIAGNOSTIC printout via the $DEBUG command.
"WAIT"##is the command for all aspects of program execution to hibernate for
a fixed period of time. The user merely follows the request word by the desired
delay
T-delay
in seconds, separated by one or more blanks.
The following
illustration is typical:
SPY: WAIT 3
The
"TDELAY"
delay will be accomplished
of FUNCTION RFUNL1.
within
installation-dependent
function
"OS"##is the command for the execution of an operating system command by
SPY.
It is highly installation-dependent, since not all computers allow such
flexibility, and not all program versions provide for it.
For example, the
Apollo program version has no such feature, but needs none, since the operating
system provides windows in which the user can execute any operating system
command of interest as the EMTP executes. On the other hand, the SUN version is
fully empowered, and seems able to execute any UNIX command via "OS". Similarly,
the PC XT-compatible version using Lahey FORTRAN seems able to execute any MS-DOS
command.
If in doubt about the computer system of interest, consult the
appropriate installation-dependent pages of Section I-F, or experiment with the
Rulebook ATP (junio 1996 - internet)
H16
feature (any computer having no such capability should display a message about
unavailability).
"DEBUG"##is the command to turn on the diagnostic printout of SPY only.
This defines variable IPRSUP. The initial value comes from STARTUP.
Although
there is some overlap, note that in general diagnostic of SPY is different than
diagnostic of the simulation half.
To control the latter from SPY,
send
"$DEBUG level".
"IOUT"##is the command to modify the printout frequency (which is stored in
the FORTRAN variable of the same name). Follow this command by the desired new
output frequency, separated from the command by one or more blanks.
XVI-C-12.
"TACS" :
Gateway to Concurrent Sequential Processing (CSP)
Although still the subject of research and experimentation, the concept of
Concurrent Sequential Processing (CSP) is important enough to deserve mention.
The SPY command that provides access to this feature is
"TACS".
The general
concept of CSP is simple enough:
Allow the user to send arbitrary EMTP variables to TACS each time step for
processing as supplemental variables.
Also allow him to bring back the TACS
results each time step, and apply those results to arbitary variables. The use
of such computation every time step explains the adjective "concurrent,"
and
"sequential" comes from the fact that this is an inherent restriction of TACS
supplemental variables.
Entry to
summarized:
"TACS"
reveals several
options, which
now will
be briefly
SPY: TACS
SEND CONTROL (REWIND, SOURCE, SUPPLEMENTAL, PATCH, SHOW, END) :
Sending
"REWIND"
will erase all previous such definitions, so that
definitions will begin from level zero. If "SOURCE" is sent, all following
input is assumed to be TACS source cards, until terminated by an "END" card.
If
"SUPPLEMENTAL"
is sent,
then all following input is assumed to be TACS
supplemental variable/device data cards,
also until an
"END"
card is
encountered.
The subcommand
"PATCH"
allows the user to connect any EMTP
variables to his TACS sources (in order to define the inputs). It also allows
the user to apply supplemental variable results to any EMTP variable. The "any"
comes from the use of a memory address of the SPY commands "LIST" or "FIND",
just as
"EXAMINE"
or
"DEPOSIT"
are quite unrestricted.
There will be
separate prompts for all such TACS input and output connections. When all such
connections are complete, "SHOW" can be used to display a summary table of all
TACS CSP input/output connections.
The future of the
"TACS"
command depends in large measure on future
evolutionary development.
The
"TACS"
command has the advantage that it is
universal, and requires no computer-dependent special features.
On the other
hand, the processing is limited by the rules of TACS supplemental variables,
which are far less general than the FORTRAN compiler (e.g., TACS can not yet
invert a matrix easily, or perform fast Fourier transformation, or compute with
limited precision). As for the next generation of TACS (already being designed),
who can be sure? One alternative to using TACS for CSP involves a synchronized,
detached process, which provides much more flexibility for those computers that
can handle the operation efficiently. Hence, the soon-to-be-improved "TACS" is
a direct competitor for certain not-yet-fully-developed features of the "APPEND"
command. In summary, it is clear that the concept of CSP will remain valid, and
flexibility of the implementation will improve. But details of such future usage
are quite unclear at the present time.
28
Rulebook ATP (junio 1996 - internet)
XVI-C-13.
Servicing [Y] Changes:
YFORM,
NOY,
H16
FACTOR,
29
NOF
Due to practical complications, the production user most likely will have no
explicit, manual use for the four SPY commands of this present section (see the
heading). They are associated with reforming the nodal admittance matrix [Y] of
the time-step loop, and with retriangularizing it.
In idealistic theory,
whenever the user modifies the computer storage of some network parameter (e.g.,
by using "DEPOSIT", or CSP of "TACS", or a synchronized parallel process of
"APPEND"), he should have [Y] reformed and also retriangularized. Then all would
be well forever after, right?
Right in theory, but wrong in practice today,
unfortunately. Due to the dependence of other program variables on the one being
changed by SPY, such reformation of [Y] can only be successful in certain cases.
It will take a lot of reprogramming before the time step
DELTAT
can so be
modified. So, only researchers should be using these functions explicitely for a
while.
Yet the production user may well be exploting the logic of these functions
implicitely, without even knowing it. For example, the "RAMP" and "SERIES"
commands connect with the code just mentioned. Hence there is no question about
the possible removal of unused features.
. Batch-Mode Execution of SPY Commands:
$SPY
and
$SPYEND
There is a batch-mode connection to SPY, for those users who can foresee all
details of SPY input in advance, before EMTP execution begins. For example, a
user otherwise might have no interest in interactive observation and control.
However, SPY might provide some special control that might be needed for the data
case of interest. A second example of usefulness is for the documentation of SPY
capability using standard test cases. The user is referred to BENCHMARK DC-56
and DC-57 as illustrations.
$SPY##(keyed in columns 1-4 of an EMTP data card) is the key that allows SPY
commands to mixed with normal EMTP data. This request must precede a block of
SPY commands,
and
$SPYEND
must follow that block to mark the end.
As an
illustration of such usage, consider data cards extracted from BENCHMARK DC-56:
14GEN
70. .1591549
-1.
$SPY
{ Request of "CIMAGE" ($-card) to begin batch-mode SPY connection
$DEBUG, 0,
{ 1st SPY command is trivial, ineffective change of DIAGNOSTIC
===< < Etc. (some 56 lines have been omitted to save space) > >===
BREAK
{ It is the latter: no more "@" cards read until "BREAK" occurs
TIME { Trivial SPY command just to demonstrate that we have "SPY:" prompt
STOP
{ This SPY command will terminate execution of the data case
$SPYEND
{ Bound on in-line SPY commands; back to batch-mode program data
BLANK card ending all electric sources
It is seen that a large block of SPY commands has been inserted after the
last EMTP source card, before the blank card ending such sources.
Although $SPY looks like a $-card that might be processed by "CIMAGE" (see
Section I-D for details), this is not the case. Just as with $INCLUDE, $SPY
is processed at the very beginning of execution, where the following happens.
All card images following the initiation of $SPY, and preceding the termination
of $SPYEND, are in fact removed from the EMTP data card cache of LUNT10, and
are placed in a separate disk file named "SPYFILE1.DAT".
This is a reserved
name, so the user should avoid it and all related files (as the serialization
digit preceding the dot varies from 1 through 9). The $SPY card is converted
to the following:
Rulebook ATP (junio 1996 - internet)
$OPEN,
UNIT=17
STATUS=OLD
H16
FILE=SPYFILE1.DAT
which will, of course, be serviced by "CIMAGE". This really is just a special
connection for what otherwise would be a SPY command file ("@" usage) without
arguments. Note the use of fixed I/O channel number#17 --- different from any
other program usage (to avoid conflicts) provided the user avoids this number in
his STARTUP file declarations for LUNIT1, etc.
The location of
$SPY
usage within an EMTP data case is critical, since
this defines the point at which the program begins reading the SPY commands.
This does not imply that all SPY commands will be read at this point, however.
The user generally will delay the input of other commands by some device such as
a "BREAK" command followed by "WAIT" and "BREAK" (to inhibit further input until
the break point has been reached). A good illustration is provided by BENCHMARK
DC-56.
It is possible to have multiple $SPY and $SPYEND declarations, if this
proves to be necessary.
The present program limit is nine, due to the single
serialization digit that follows "SPYFILE" as explained above. There is no need
to be sure that one group of SPY commands is exhausted before the next group is
requested, since the program handles the transition by brute force. Prior to the
connecting of a new "SPYFILE" in "CIMAGE", any old one is disconnected --whether or not all records have been read from the old file.
An illustration of
multiple $SPY declarations can be found in BENCHMARK DC-57.
. Use of SPY "PLOT" Instead of Separate Program
"TPLOT"
A special, new, degenerate application of "SPY" has nothing to do with
simulation.
Rather, it concerns the plotting of preceding simulations -- a
function that previously required a separate, special plotting program "TPPLOT".
A separate program no longer is needed, and in many cases, is no longer desired.
While the reader could learn this new usage of the EMTP on his own from the
detailed information of Section XVI-C, it is important enough to deserve special
mention in this special section.
Usage of the EMTP just as a plotting program has the advantage of speedier
response for the plotting of large data files. Rather than input data points of
curves from disk as they are needed (which is the "TPPLOT" approach), the EMTP
loads the contents of a ".PL4" plot file into memory at the very start.
Then
input is either from memory or via paging (virtual memory management), which is
an order of magnitude faster than FORTRAN READ operations from an I/O unit. For
big data cases, this can save a lot of time, so is worth considering. The really
serious user may even want to create a special EMTP version in which the
simulation code has been cut out in order to remove the burden of all that extra
code and table space, thereby allowing the expansion of plotting space without
further burdening the computer.
Plotting via the EMTP is simple enough.
Begin EMTP execution, and select
SPY, of course. Then key the following SPY commands, in order:
1)
2)
3)
4)
5)
6)
7)
8)
9)
10)
DATA --- Request of EMTP for specification of disk file
disk_file --- contains a single $OPEN card (see below)
STEP
--- Instruct SPY to halt the simulation everywhere
GO
--- Begin EMTP execution. Repeat this 4 times!
SPACE --- SPY command allowing management of memory
PLOT
--- It is plot data storage that we will manage
READ
--- We want to read plot data points into memory
ALL
--- Time range of data to be loaded (the whole file)
1
--- Handle every N-th time step, where N = 1 here
0
--- No offset for memory storage of the plot data
30
Rulebook ATP (junio 1996 - internet)
11) SPY
---
H16
31
After plot points are all loaded, exit to "SPY:"
For an illustration of such execution that connects and loads the plot data
of the file named DC3TO54.PL4 (created by solving BENCHMARK DC-3), send the
SPY command "@0" as the first SPY input. That is, inspect and test the command
file INCLSPY0.DAT, the last entry of the "FILES" display. The disk file that
is named in step#2 contains just a single card: a $OPEN statement that connects
the desired
".PL4"
disk file of raw plot data points to unit LUNIT4.
The
multiple "GO" commands merely serve to step past unwanted SPY break points to
where EMTP data normally should be read, in UTPF overlay number 1. The new-case
heading should appear, and after it, the interpreted copy of the
$OPEN
card
that is contained within the disk file of step#2.
The remaining SPY commands
serve to load this data from disk into the EMTP's virtual memory, and finally
exit from the "SPACE" command (step#11). When execution of the command file
ends, there will be a "SPY:" prompt to which the user can respond with "PLOT"
as the plotting begins.
Hereafter, details are no different than have already
been documented in Section XVI-C-4.
Under what circumstances might a user not want to do his plotting this way,
using the EMTP? First, there is little or no speed incentive for small ".PL4"
files. Since starting the big EMTP is slower than starting the small, separate
program "TPPLOT", and since the EMTP requires special steps as just listed, use
of the EMTP in such cases is probably more trouble than it is worth.
Second,
there may be a space problem for truly enormous ".PL4" files.
Remember that
"TPPLOT" has no limit on the size of the ".PL4" file, whereas the EMTP does
(since all such points must be loaded into memory). If a properly dimensioned
version of the EMTP is not immediately available, the resizing of tables
represents an added complication.
Third, the EMTP has no built-in hard copy
connection using CalComp plots the way "TPPLOT" does (the "COPY" command).
Whereas some computers may have hardware and an operating system that
automatically provide hard copies of the screen, this is not universal, and usage
of it may not be as convenient.
In conclusion, SPY "PLOT" is a powerful new
tool, but it is not a general replacement for other froms of EMTP plotting
(including "TPPLOT") for all users in all cases.
$OPEN##provides an alternate, newer, even more flexible form of such SPY
plotting.
Rather than burying the file-connection command in a separate file
(see "disk_file" of step 2 above), this command can be sent directly through the
SPY window.
The
$-command of SPY allows this more unified treatment.
Otherwise, not much is changed.
For an illustration, see
INCLSPY9.DAT
(try
"@9").
Rulebook ATP (junio 1996 - internet)
H17
1
XVII-A. JMARTI setup
Purpose and applications
The supporting routine JMARTI setup can generate only one model (travelling
wave model) and is only valid for conventional overhead lines.
In the travelling wave model, both the characteristic impedance Zc as well as
the propagation function A1 are obtained using modal characteristics, calculated
over a user defined frequency range, under the assumption of a constant
transformation
matrix (phase-mode transformation).
Then, both Zi and Ai undergo a high-order rational function approximaiton. In
the time domain, this fitting is represented by a sum of real exponentials, thus
allowing usage of recursive convolution methods in the time domain. The order of
fitting no longer equals two (like it was the case in Semlyen setup). Typical
figures for the order are 5...10.
The generated LUNIT7 punched card output immediately is in the proper input
format to be used for a subsequent transient run, as explained in section IV-D-3.
In order to allow the program to calculate the necessary modal
characteristics for the conductor system under consideration, the JMARTI code
imbeds the LINE CONSTANTS or CABLE CONSTANTS code.
For an example using LINE
CONSTANTS, we refer to benchmark DCNEW3, 2nd subcase of DCNEW4, DCNEW5 and
DCNEW6. For CABLE CONSTANTS, results are considered to be unreliable because the
assumption of constant transformation matrix all over the frequency range does
not hold for cables.
Input structure
Input data cards for JMARTI setup involve an imbedded LINE CONSTANTS data
case following the initial JMARTI declarations.
1. BEGIN NEW DATA CASE
2. JMARTI SETUP REQUEST
3. Optional special request cards
BRANCH
4. A LINE CONSTANTS data case
5. JMARTI miscellaneous fitter specifications
or DEFAULT card
6. BLANK card terminating JMARTI
7. BEGIN NEW DATA CASE
10. BLANK CARD terminating all cases
Let us discuss the above card formats in more detail now.
Whenever
appropriate, distinction between the transposed and untransposed case will be
clarified.
BEGIN NEW DATA CASE
JMARTI setup request
Rulebook ATP (junio 1996 - internet)
H17
151
Parameters:
PDTO: controls possible reduction in the order of approximating rational
functions.
Default value = 1.
Note:
This parameter PDTO is not actually used by the fitter itself, but is merely
passed along from the declaration card just shown to any branch cards that later
are to be punched.
Indeed, in the punched cards of section IV-D-3, parameter
PDTO can be found back on cols. 33-38 and has the following meaning:
The fitter always returns to LUNIT7 the full order of the approximating
rational functions for Zc and A1. The higher the order, the more poles and
zeroes are being calculated.
During the transient run, the approximative functions are taken into account
using recursive convolution and transfer from modal domain to phase domain.
These calculations are very timeconsuming.
-
In order to speed up calculations during the transient run, the user can
specify a threshold for the order reduction (i.e. reduce the number of poles
and zeroes approximating Zc and A1). Usage is illustrated in DCNEW4 (first
subcase versus second subcase).
Optional BRANCH request
152
The node names should be placed in pairs (sending end, receiving end), phase
per phase.
When specified, these node names will also appear in the LUNIT7 punched
output.
When omitted, the user himself will have to enter the desired node names in
the punched output file.
2
Rulebook ATP (junio 1996 - internet)
H17
3
Next follows a LINE CONSTANTS data case
As explained in section XXI, such input sequence typically looks as follows:
a.
b.
c.
d.
e.
f.
g.
LINE CONSTANTS request card
unit specification card (ENGLISH or METRIC)
conductor cards
BLANK card ending conductor cards
2 or 3 frequency cards
BLANK card ending frequency cards
BLANK card ending LINE CONSTANTS imbedded usage
Note regarding frequency cards:
- Depending on whether or not the line is assumed to be transposed (MODALspecification; cols. 69-70) or not, the number of frequency cards differs.
- For the untransposed case (MODAL = 1):
- Three frequency cards are needed
- The first card (transient frequency card) contains the single frequency
FREQTRAN at which the transformation matrix should be calculated. Recall that
in effect, such matrix is frequency dependent. Hence, FREQTRAN somehow should
be related with thte frequency of the transient phenomena one wants to observe.
For overhead lines, 5000 Hz is a typical value. Finally, also remark that via
parameter TR, the user can specify details on the transformation matrix to be
used.
It is even possible to use a user-defined rather than a calculated
transformation matrix.
- The second card (steady state frequency card) bears the single frequency
FREQSS at which the steady state values should be calculated. Typically, this
is the frequency value of the type-14 sources.
- The third card (frequency looping card) specifies the frequency range to loop
over for the calculation of the modal parameters Zc and A1.
Typically, the
starting frequency FREQINIT is set to 0.01 Hz, the number of decades DEC equals
8 or 9 and one must take PNT = 10 points per decade.
Via parameter TR, the user can specify details on the transformation matrix
to be used.
=0: blank or -2 (this option is recommended): the eigenvectors (= columns of
the complex transormation matrix) will be rotated closer to the real axis,
so that their imaginary part is assumed to become negligible.
=-9:the full complex transformation matrix will be used.
=-1: the user needs to define his own current transformation matrix,
immediately following the first frequency card.
- RHO, FCAR, DIST, ISEG and MODAL should be equal on all 3 cards. Hence,
the card format looks as follows:
153
Rulebook ATP (junio 1996 - internet)
H17
- For the transposed case (MODAL = 0):
- Only two frequency cards needed. Recall that no transient frequency card is
needed, because the transformation matrix in case of a transposed case is known
a priori. Furthermore, in this special case, the matrix is constant throughout
the frequency range.
- The first card (steady state card) bears the single frequency FREQSS at which
the steady state values should be calculated. Typically, this is the frequency
value of the type-14 sources.
- The second card (frequency looping card) specifies the frequency range to
loop over for the calculation of the modal parameters Zc and A1. Typically, The
starting frequency FREQINIT is set to 0.01 Hz, the number of decades DEC equals
8 or 9 and one must take PNT = 10 points per decade.
- RHO, FCAR, DIST, ISEG and MODAL should be equal on all 2 cards. Hence, the
card format looks as follows:
154
JMARTI miscellaneous fitter specifications
-
There are two possible ways to specify miscellaneous fitter specifications:
using the DEFAULT option. In this case, only one card is needed.
explicite definition of fitter parameters.
In this case, three cards are
needed.
Let us discuss both possibilities in more detail now.
5.a Using the DEFAULT option
155
This is the only card one needs.
the non-experienced user.
Such request is generally recommended for
5.b Explicit definition of fitter parameters
This option should be selected by the experienced user, who wants to have
control over some (or all) of the individual fitting parameters.
4
Rulebook ATP (junio 1996 - internet)
H17
5
Three different types of parameters can be specified on the different fitter
cards:
- miscellaneous data
- parameters for Zc fitting
- parameters for A1 fitting
Let us discuss these three card formats in more detail now.
5.b.1 Miscellaneous data
156
Parameters:
IDEBUG provides control of diagnostic printout during the JMarti fitting. A
value of unity is recommended for normal production usage, since this will
result in a display of the number of poles and zeroes, and the accuracy of
the fit, for each iteration of the corners-allocation loop.
Higher values
(2, 3 or 4) result in more output.
IPUNCH controls whether or not branch cards will be punched after the
fitting.
Value zero will produce JMarti branch cards, whereas unity will
omit such output.
KOUTPR controls visibility of JMarti input data card interpretation of the
subsequent transient simulation.
Recognized, distinct values of KOUTPR are
zero, unity, and two.
The user-keyed value is placed on resultant branch
cards (if any) as variable SKIP. For further details, refer to this variable
in Section IV-D-3, Rule 1.
GMODE is the conductor conductance in the modal domain (the same as phase to
ground conductance in the phase domain, if such conductance is assumed to be
the same for all phases, and if there is no mutual conductance between
phases. The default value is 3.E-8 mhos/km (equivalent to 4.8E-8 mhos/mile).
The units of length should agree with those used within LINE CONSTANTS data.
5.b.2 Parameters for Zc fitting
157
NEXMIS will normally be left blank.
A nonzero value indicates the mode
number for which a different fitting card is to be supplied. A blank means
that all modes of characteristic impedance Z c will use the same fitting card.
Rulebook ATP (junio 1996 - internet)
H17
A nonzero value gives the mode of interest. For example, NEXMIS = 3 means
that the characteristic impedance of the third mode is to be fitted using
parameters specified on a new fitting card.
EPSTOL is the error tolerance for fitting, in percent. The fitting error is
evaluated in a least-squares sense, and averaged over a range that excludes
initial or final asymptotic regions (by 0.001%). The default value for blank
or zero is 0.30%.
NORMAX is the maximum order (maximum number of poles) to be allowed for the
rational function approximation. Blank or zero is given a default value of
30.
IECODE is a switch to determine the mode of fitting. If zero, EPSTOL is used
to determine the order of the approximating function. If unity, then EPSTOL
has no effect on the order.
Instead, the best fit with an order less than
or equal to NORMAX is determined.
Of course, when using the EPSTOL
criterion, it is possible that a fit within this tolerance is not possible.
The user will be infored of such difficulty of fitting only if IDEBUG is
positive.
Increasing the value of NORMAX might in such cases allow the
EPSTOL criterion to be met, but not always. Higher order does not guarantee
greater accuracy, since the logic is imperfect. So use engineering judgement
(moderation in all things).
IFWTA controls tabular printout of the fitting. The value unity will result
in the display of a table comparing the magnitude and phase angle of the
rational approximation with the therortical values as a function of frequency
(rows of the table). Zero will suppress such output.
IFPLOT controls graphical printout. The value unity will produce a character
(line printer) plot comparing the magnitude of the rational approximation
with the theoretical value as a function of frequency.
Zero will suppress
such output.
IFDAT controls possible tabular printout of transmission circuit parameters
as a function of frequency. The value unity will result in such a display,
whereas zero will suppress such output.
INELIM is a switch controlling logic of the fitting process. The value zero
means that order increases of the approximating function will end if and when
the error becomes five times larger than the previous minimum. On the other
hand, unity allows increases of order regardless of whether there is
improvement.
This is within limits represented by parameters NORMAX or
EPSTOL, of course.
5.b.3 Parameters of A1 fitting
158
Parameters:
6
Rulebook ATP (junio 1996 - internet)
H17
7
All variables except the first and the last have meanings that are identical
to those for Zc (see preceding section XVII-B-2). The first, NEXMIS, differs in
that a minus sign is required to indicate a mode of A1 rather than a mode of Zc.
The final parameter is a new one in cols. 65-72 named AMINA1. Data points with
magnitude less than AMINA1 will be discarded during the fitting process. Blank
or zero is given a default value of 1/20.
BLANK card terminating JMARTI
BEGIN NEW DATA CASE
BLANK card terminating all cases
Output structure
For a description of the output structure,
output, we refer to section IV-D-3 (branch cards).
more
especially
the
LUNIT7
Example
For examples, we refer to benchmarks DCNEW3, DCNEW4, DCNEW5 and DCNEW6.
XXI. Supporting routines
Supporting routines are used to translate some input data, which is known
for the user, to some other output data which directly can be used in an EMTP
application. One group of these supporting routines is treated in this chapter,
while other supporting routines are treated in some separated chapters.
Following supporting routines are treated in this chapter:
1)
2)
3)
4)
5)
6)
7)
8)
9)
10)
"XFORMER" to derive [R], [[Equation: omega]L] of single-phase transformers
"OBSERVE PARALLEL MONTE CARLO" for parallel "STATISTICS"
"BCTRAN" to derive [A], [R] or [R], [[Equation: omega]L] of multi-phase
transformer
"CHANGE SWITCH" to convert former switched R, L elements to type-99, -98
"OLD TO NEW ZNO" to update pre-"M39" ZnO data cards
"DATA BASE MODULE"
"SATURA" to derive ([Equation: psi],i) peakvalue curves
"HYSDAT" to create type-96 hysteretic inductor characteristic
"ZNO FITTER" to punch type-92 nonlinear branch cards
Convert saturable transformer cards to linear equivalent [R], [L]
Rulebook ATP (junio 1996 - internet)
H19a
1
XIX.A "XFORMER" to derive [R], [wL] of single-phase transformers
The supporting routine "XFORMER" can be used to derive a linear [R]-[wL]
representation
for
single-phase
transformers
(both
2and
3-winding
transformers), using test data of the excitation test and short-circuit test at
the rated frequency.
Excitation losses can't be taken into account by this model. On the other hand,
these losses can be neglected for a single-phase transformer, recall. The shortcircuit losses can (and should) be taken into account, however.
Stray capacitances are ignored in this representation, which therefore is only
valid up to a few kHz. On the other hand, the model is not valid for extremely
low frequencies either. The latter is mainly due to the fact that the XFORMER
model uses admittances internally without first separating the resistive and
inductive parts. At DC conditions, this mathematical manupulation then results
in non-zero off-diagonal resistive elements, which indicate induced voltages in
the secondary winding.
At DC, of course, such voltage induction is physically
impossible.
Non-linear behaviour can't be included in the "XFORMER" model proper.
Such
behaviour (saturation or hysteresis) could be taken into account, however, by
adding type 93, 96 or 98 elements, connected to the proper transformer terminals
(i.e. those windings that are closest to the core) in the electrical network,
during the steady-state or transient run. In such case, however, it would be
mandatory to specify Iex = 0, since otherwise, the magnetizing inductance will be
taken into account twice. On the other hand, of course, I ex = 0 is impossible,
since this would result in an admittance matrix being singular. Hence, XFORMER
will not be able to take saturation into account properly. Usage of BCTRAN is
desirable in such case. Alternatively, for the two-winding transformer, this
problem can be circumvented by using the saturable transformer component (which
explicitely takes into account the saturation). In the 3-winding case, however,
the saturable transformer component can become numerically instable for unknown
reasons.
Although this model uses the admittance notation internally, nevertheless it is
mandatory that the magnetizing current certainly is not near-zero (or zero).
Indeed, if the user specifies too little magnetizing current, the magnetizing
impedance gets lost in the admittance matrix that becomes nearly singular, so
that it can't be inverted any more to result in the desired [R]-[wL] matrices.
Remark that the floating-point miscellaneous data parameter EPSLIN (see Section
II-B) is used as a singularity tolerance.
In cases with small magnetizing
current, it is more appropriate to use the "BCTRAN" model of Section XIX-C. For
a 2-winding transformer, the equivalent circuit as created by XFORMER looks as
follows:
159
The punched card output of XFORMER can be used immediately as input branch cards
for mutually coupled R-wL elements (TYPE 51, 52, ...) in the electrical network
(Section IV-C).
Do not forget to set the miscellaneous parameter XOPT (to be
used during the transient run) equal to the value of the rated frequency used to
Rulebook ATP (junio 1996 - internet)
H19a
2
perform the excitation- and short-circuit test. Indeed, all input data are only
valid at this implicit frequency.
Further, note that it is impossible (even
useless) to try to reset the value of this frequency!!
The following will
"XFORMER" cases.
explain
the
input
data-deck
structure
for
all
possible
Rulebook ATP (junio 1996 - internet)
H19a
3
XIX.A.1 Input data-deck structure for "XFORMER"
The only differences between the input rules for a 2-winding and a 3-winding
transformer are the following:
- (point 4)
Number of terminal nodes, mentioned on the "BRANCH" card.
- (point 5)
Number of cards "NC" in the grouping specifying the electrical
parameters of the transformer.
- (point 6)
The output for a 2-winding transformer only contains TYPE 51-52
branch cards, whereas the output for a 3-winding transformer contains TYPE 51-53
branch cards.
Suppose that a user wants to model a single-phase, 2- or 3-winding
transformer using the XFORMER supporting routine. His data deck then should have
the following structure:
1. BEGIN NEW DATA CASE
2. XFORMER
- special-request word
(transfers control to the proper overlay)
3. $ERASE
- request (optional)
(erase all card images that might exist in punch buffer)
4. BRANCH
- card (optional)
(name the terminal nodes of the transformer windings)
5. "NC" data cards
(specify the electrical parameters of the transformer)
NC = 2 for the 2-winding case
NC = 4 for the 3-winding case
6. $PUNCH
- request (optional)
(flush contents of punch buffer of preceding XFORMER case)
Remark that the data of points 4, 5 and 6 may be repeated as many times as
desired.
Each such grouping is a separate data case within the "XFORMER"
setup, corresponding to a different transformer.
7. BLANK CARD ending all XFORMER cases
8. BEGIN NEW DATA CASE - card to begin new EMTP data case.
As for an example of such input for a single-phase, 3-winding transformer,
we refer to benchmark DC-15.
Let's discuss the different card formats one by one, in closer detail now.
1. The "BEGIN NEW DATA CASE" card comes first.
160
Rulebook ATP (junio 1996 - internet)
H19a
2. Next comes the "XFORMER" card, a special-request card which serves to transfer
control to the overlay in question.
161
3. Next comes the optional "$ERASE" card, a special-request card which serves to
reset the punch buffer (LUNIT7).
162
NOTE: This optional $ERASE card should be used whenever punchcard output is
requested as input for the electrical network.
4. Next comes the optional "BRANCH" card, which serves to name the terminal nodes
of the transformer windings. Thus, each winding will be interpreted as a branch
between "BUS1" and "BUS2". Since all of these branches will be represented as
TYPE-5x elements, mutual coupling can be taken into account.
NOTE: This optional card should be used whenever punched card output is requested
as input for the electrical network.
The card format is slightly different for the 2- and 3-winding cases.
In the
FORMAT diagrams, "HV" stands for high voltage, "LV" stands for low voltage, and
"MED" stands for medium voltage.
a) The 2-winding case:
163
4
Rulebook ATP (junio 1996 - internet)
H19a
5
b) The 3-winding case:
164
5. Following are data cards, specifying the electrical
transformer. These cards can be split into two parts:
parameters
of
the
- The first card groups excitation data and the output specification
request.
This card is slightly different for both 2- and 3-winding
transformers (parameter "NW" in column 1).
- The second group of cards contains short-circuit data.
The number of
cards in this second grouping depends on the number of windings. For the
2-winding case, only one card will be needed, but for the 3-winding case, 3
cards are needed.
5.1. First comes one card, containing both the excitation data and the output
specification request. The only difference between the 2- and 3-winding cases is
the value of the parameter "NW".
165
Parameters:
NW
: Number of windings.
=2 : 2-winding transformer
=3 : 3-winding transformer
IMAGN: The transformer magnetizing current (in percent).
Use following formula:
Rulebook ATP (junio 1996 - internet)
IMAGN = I ex VOLT
H19a
2
100 16
SBASE
where Iex = measured excitation current
VOLT2 = rated voltage of LV-winding
SBASE = power base
Note that the case of "IMAGN = 0" will result in an error message. In such
case, the user is adviced to use the BCTRAN model (section XIX-C). Further,
it is accurate enough to use the magnitude of the value of the exciting
current rather than the exact (but smaller) magnetizing current.
SBASE: Power base (in MVA), used for "IMAGN"-referencing
5.2. Cards containing short-circuit data. For the 2-winding case, only one card
will be needed, but for the 3-winding case, 3 cards are needed.
a) The 2-winding case: (only 1 card needed)
166
Parameters:
VOLT1: Rated RMS voltage (in kV) of winding 1 (high voltage side).
VOLT2: Rated
RMS voltage (in kV) of winding 2 (low voltage side)
PLOSS12: Short-circuit losses (in kW) at rated frequency.
ZSC12: Magnitude of the short-circuit impedance (in percent) of the
transformer between winding 1 and winding 2.
Note that this percent value is implicitly frequency dependent, since it is
measured at a very specific frequency: the rated frequency.
Further
following formula should be used:
ZSC12 =
U sh SBASE 2
1 100
I sh VOLT
where Ish = nominal current
Ush = short-circuit voltage
SBASE = power base
VOLT1 = rated voltage of HV winding
6
Rulebook ATP (junio 1996 - internet)
H19a
7
SBASE: Power base (in MVA), used for "ZSC12"-referencing
(e.g. the rated power of the transformer).
b) The 3-winding case: (3 cards needed)
167
Parameters:
VOLTi: Rated RMS voltage (in kV) of winding "i".
PLOSSij: Short-circuit losses (in kW) at rated frequency.
ZSCij: Magnitude of the short-circuit impedance (in percent) of the
transformer between winding "i" and winding "j".
Note that this percent value is implicitly frequency dependent, since it is
measured at a very specific frequency: the rated frequency.
Further,
following formula should be used:
ZSCij =
U sh SBij
I sh VOLTi2
where Ish = nominal current
Ush = short-circuit voltage
SBij = power base
VOLTi = rated voltage of winding i
SBij : Power base (in MVA), used for "ZSCij"-referencing
(e.g. the rated power of the transformer)
6. Next comes the optional "$PUNCH" card, a special-request card which serves to
activate the puncher (LUNIT7).
168
Rulebook ATP (junio 1996 - internet)
NOTES:
H19a
1) This optional card should be used whenever punched card output is
desired.
2) Since both the resistance- and inductance matrix are in Ohms, at
the rated frequency, one should use XOPT = "rated frequency" during
transient runs using this punched output as branch card input.
3) This punched card output will use the high-accuracy free-format
notation for TYPE -51-52-53 elements. As a consequence, the freeformat separation- and continuation characters (see Card 18 of the
STARTUP file of Section I-E-2) will be used on all punched cards.
Of course, the usage of such characters must be consistent between
the "XFORMER" derivation and the subsequent usage as part of a
simulation.
Note that the data of points 4, 5 and 6 may be repeated as many times as desired.
Each such grouping is a separate data case within the "XFORMER" setup,
corresponding to a different transformer.
7. To end all "XFORMER" cases, a blank card is used.
8. If the user wants to shut off the EMTP at this point, a "BEGIN NEW DATA CASE"
card, followed by a blank card should be entered next.
XIX-A.2 Example of "XFORMER" data set up
Consider a one-phase two-winding transformer with both primary and secondary
winding grounded at one terminal. The other terminals are to be named "H1" and
"L1" for high-voltage and low-voltage node, respectively. Finally, the following
data were obtained by measurement (at 50 Hz) for this transformer:
Power rating S
Excitation losses Pex,loss
Excitation current Iex
Short-circuit losses Psh,loss
Short-circuit current Ish
Short-circuit voltage Ush
Voltage rating Vprim/Vsec
:
:
:
:
:
:
:
0.0063 MVA
0.065KW(not needed for XFORMER)
1,85 Amps
0.095 KW
16 Amps
8.3 Volts
.220/.377KVolts
The derived values for the other parameters are:
per-unit magnetizing current:
1.85 *
220
= 0.0646pu
6300
short-circuit impedance:
Z sh =
8.3
U sh
=
= 0.518 Ohms (at 50Hz) 20
16
I sh
(6.46%)
8
Rulebook ATP (junio 1996 - internet)
H19a
9
per unit short-circuit impedance:
Z sh,pu = Z sh *
S
U 2HS
= 0.02296pu (2.296%)
The short circuit test was performed using 16 A rather than the normal HV current
Inom. Hence the value for the losses should be modified:
2
Psh,nom
 16.71 
= 0.095* 
 = 0.10363KW
 16 
where the index "nom" refers to nominal conditions and "m" refers to actual
measuring conditions.
I sh,nom =
6300
= 16.71A
377
we find
2
Psh,nom
 16.71 
= 0.095* 
 = 0.10363KW
 16 
Further note that the resistance values can be tested by handcalculations:
HV: R HV = 0.
3711
= 0.186
2
2
LV: R LV = 0.
3711  220 
*
 = 0.063
 377 
2
These values can not be traced back in the punched results. This is because the
full admittance matrix is inverted, resulting in non-zero off diagonal values in
the resistance matrix. Further details can be found in the Theory Book.
The card deck representing the XFORMER input, then would result in the following
card sequence:
BEGIN NEW DATA CASE
C
1
2
3
4
5
6
7
8
C 3456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789
XFORMER
$ERASE
BRANCH H1
L1
C
C 2 windings, IMAG = 6.460 %, PBCUR = .0063 MVA
C
2 6.460
.0063
C
C .377/.220 voltage ratio, PLOSS12 = .10363 KW, ZSC12 = 2.296 %, PBZ12 = .0063
C
Rulebook ATP (junio 1996 - internet)
.377
.220
.10363
$PUNCH
BLANK CARD ENDING XFORMER
BLANK CARD ENDING ALL CASES
2.296
H19a
.0063
XIX.A.3 Output data-deck structure
For the sample input data of the preceeding paragraph, the output appears as
follows:
Comment card.
NUMDCD = 1.
Marker card preceding new EMTP data case.
Comment card.
NUMDCD = 3.
Comment card.
NUMDCD = 4.
Request for transformer [R] +jw[L] computation.
Erase all of 0
cards in the punch buffer.
Node names for LUNIT7-punched branch cards.
Comment card.
NUMDCD = 8.
Comment card.
NUMDCD = 9.
Comment card.
NUMDCD = 10.
New device.
2
6.460000E+00
6.300000E-03
Comment card.
NUMDCD = 12.
Comment card.
NUMDCD = 13.
Comment card.
NUMDCD = 14.
Wind. 0.377E+00 0.220E+00 0.104E+00 0.230E+01
|C data://C/GUIDO/XFORMER.IN
|BEGIN NEW DATA CASE
|C
1
2
3
4
5
6
7
8
|C 3456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789
|XFORMER
|$ERASE
|BRANCH H1
L1
|C
|C 2 windings, IMAG = 6.460 %, PBCUR = .0063 MVA
|C
|2 6.460
.0063
|C
|C .377/.220 voltage ratio, PLOSS12 = .10363 KW, ZSC12 = 2.296 %, PBZ12 = .0063
|C
|.377
.220
.10363
2.296
.0063
Single-phase, 2 -winding transformer.
IMAGN = 6.46000000E+00 percent based on
Voltage across winding
Losses
Impedance based on
[ kV ]
in [kW]
[percent]
[MVA]
High
0.38
High
-- Low
0.10
2.2960
0.006
6.30000000E-03
MVA.
Impedance matrix as required for transient studies, with reactance X in ohms at the power frequency.
R
X
R
X
R
X
High
0.9272619E-01 0.3493188E+03
Low
-0.5411077E-01 0.2037411E+03 0.3157658E-01 0.1189555E+03
Short-circuit input impedances follow --- obtained from the just-printed impedance matrix by reverse computation. This represents
sort of a check on the computation:
High
-- Low
0.37071
0.36138
Repeat the preceding calculation, only this time the starting point will be the impedance matrix with all elements rounded to
approximately five decimal digits:
High
-- Low
0.37070
0.37938
Request for flushing of punch buffer.
|$PUNCH
A listing of 80-column card images now being flushed from punch buffer follows.
===============================================================================
1234567890123456789012345678901234567890123456789012345678901234567890123456789
===============================================================================
C <++++++> Cards punched by support routine on 17-Apr-89 10.34.43 <++++++>
C XFORMER
C $ERASE
C BRANCH H1
L1
C C
C C 2 windings, IMAG = 6.460 %, PBCUR = .0063 MVA
C C
C 2 6.460
.0063
C C
C C .377/.220 voltage ratio, PLOSS12 = .10363 KW, ZSC12 = 2.296 %, PBZ12 = .0063
C C
C .377
.220
.10363
2.296
.0063
51,H1
,
, , ,
0.9272618817281E-01 ,
0.3493188082966E+03 , ,,,,
52,L1
,
, , ,
-0.5411077293636E-01 ,
0.2037410770117E+03 $
0.3157657837292E-01 ,
0.1189555285801E+03 , ,,,,
=========<
End of LUNIT7 punched cards as flushed by
$PUNCH
request
>=======
XIX.A.4 Usage of TYPE 51-52-53 punched output of "XFORMER"
TYPE 51-52-53 punched output cards can be used immediately as branch cards
representing the transformer. Don't forget to put XOPT (miscellaneous data card)
equal to the value of the rated frequency (transformer testing frequency) during
a transient simulation.
Further, be sure that the free-fromat separation- and
continuation characters are compatible between XFORMER and the transient run.
For more details, see Section IV-C.
Recall that XFORMER can not deal with non-linearities (such as saturation
and hysteresis). This could only be done via external addition of a saturation
10
Rulebook ATP (junio 1996 - internet)
curve. But in
impossible.
such
case,
XFORMER
proper
should
H19a
deal
with
I ex = 0,
11
wich
is
Rulebook ATP (junio 1996 - internet)
1. "OBSERVE PARALLEL MONTE CARLO"
H19b
1
for Parallel "STATISTICS"
The philosophy and theory behind OPMC is covered in Ref. [52], so such
information will not be repeated here. Instead, the presentation here will be
limited to an explanation of the interactive dialogue that is possible following
the program prompt, which appears as follows:
key (INIT, SHOW, END, ADD, EDIT, USE, WAIT, GO, SHOT, WIDTH, CARD, HELP, QUIT):
User alternatives, most of which are shown in parentheses, will be explained one
at a time in following paragraphs.
"INIT"
(short for "initialize") is the appropriate first command if no
correctly-structured disk file PARALLEL.LIS already exists.
Alternatively, it
can be used to erase all history from such an existing, legal, history file.
"SHOW" will produce a display having one row for each EMTP process that has
submitted information since the previous initialization. For example:
USERID Starting time Last-shot time KNT NENERG INDMCB Extrema and switch times stored here -->
-------------------------------------------------------------------------------------------------1 Milano 11-Nov, 20.48 11-Nov, 20.54
26
750
600 //c/wsm/dc66lunit9.bin
2 London 09-Nov, 14.03 10-Nov, 01.39
142
200
146 //b/keep/process_2/Binary_Output.bin
4 Berlin 12-Nov, 19.45 12-Nov, 19.46
2
430
48 //c/wsm/Output.lis
5 Moscow 12-Nov, 19.45 12-Nov, 19.46
12
150
242 //a/BOB/Goodie_Goodie.bin
The 6-byte USERID is from either the STARTUP file or a subsequent "USER
IDENTIFICATION" declaration.
Note that lower case is preserved.
This label
must be unique for any such parallel Monte Carlo simulation, since it identifies
the process.
The "Starting time" is the same figure that is a part of the
heading that begins the LUNIT6 output of a simulation. The "Last-shot time" is
the time at which a row of the table was last updated, at the completion of
another energization.
Variables KNT and NENERG show the number of the lastcompleted energization and the terminal number of such energizations. INDMCB is
the index to RAM-based storage of the energizations.
Finally, history of the
energizations is stored in the disk file having the 40-byte name labeled
"Extrema and switch ...", which was taken from the $OPEN card connecting this
file to LUNIT2.
Should the user want more information, he should send "SHOW
ALL", which will append more information after the just-explained table.
An
illustration follows:
Process JJFULL
KNTSUM KSWTCH
182
6
created
NTOT
25
"START AGAIN" tables named .. //c/wsm/Output.bin
IBR
NSTAT JJLAST LSIZ23 JJFULL
15
10
6
4000
2
Shown first is the file name of the "LABCOM" tables (normally there will be
just one). About following integers, KNTSUM is the sum of all energizations
(sum of rows in the KNT column), KSWTCH is the number of switches, NTOT is the
number of nodes, IBR is the number of branches, NSTAT is the number of output
variables, JJLAST is the last row of the table (visible only if it has not been
made inactive by USE), LSIZ23 is the dimensioned limit to RAM-based storage of
the energizations, and finally, JJFULL is the process number mentioned in the
first line.
The command "SHOW TOP" will display three hidden records at the
beginning of the table. An illustration follows:
Columns:
12345678901234567890123456789012345678901234567890123456789012345678901234567890
123456789012345678
Misc. data =
6
25
15
10
6
4000
2 //c/wsm/Output.bin
File locks =1 11 1
Inactivity = 1
Should the user want to "EDIT" these rows, they are numbered -2
(miscellaneous data), -1 (file locking flags), and 0 (inactivity flags). If a
number follows the "SHOW" command (e.g., "SHOW 5" or "SHOW ALL 5"), it will be
Rulebook ATP (junio 1996 - internet)
H19b
interpreted as the repetition time in seconds for the display. The loop will
continue until it is broken by the user-keyed interrupt of SPY. This assumes
that the user-keyed interrupt is available for the computer of interest.
If
not, perhaps a computer-dependent interrupt of the process will be required.
The "END" command will conclude either a single process, or all parallel
processes, at the end of the on-going energization or energizations.
For a
single process, follow the command by the process number (e.g., "END 3" to put
process number 3 to bed. By definition, the process number is the row number
in the "SHOW" display.
To put all processes to bed, send "END ALL".
The
response of OPMC is to reduce NENERG to KNT. The EMTP checks for such a change
after each energization except the first, and it will modify NENERG accordingly,
resulting in a premature end to the energizations and a beginning of statistical
tabulations, if any.
The "ADD" command will punch EMTP data cards for subsequent statistical
tabulation of all energizations of all parallel processes. More precisely, it
will create the cards to combine (hence, "ADD") all such raw data during a
subsequent execution of EMTP.
The user takes possession of these cards
following a $PUNCH request.
To the computer-created cards must be added the
tabulation requests that are desired by the user, of course. This is done by
manual editing prior to use of the data cards.
The "EDIT" command allows the user manually to replace any single row of
the central statistics file PARALLEL.LIS.
Follow the command word by the
process number (the row number of the "SHOW" display).
There will be two
prompts for the 99-column line in two parts.
Send bytes 1-56 (through INDMCB) for line 6 :
Send file name (bytes 59:98) to complete row :
Note that the two blanks preceding the file name, columns 57 and 58, are
not redefined.
The "USE" command will toggle the activity status of a row of the central
statistics file without affecting the associated process in any way. Follow the
command by the process number (the row number of the "SHOW" display) that is to
be modified. A subsequent "SHOW" will illustrate the modified status. A row
that was visible will become missing (inactive), whereas a row that previously
was missing will become visible (active).
In the preceding illustration, row
number 3 was missing because it had been made inactive by means of a "USE 3"
command. The next time a new process would be added to the table, it would fill
the last such inactive row before a brand new row would be appended to the end.
"WAIT" is like "END" except that it results in process hibernation rather
than termination.
The hibernating status of a process is indicated in the
"SHOW" display by a minus sign applied to the maximum number of energizations
"End".
To reactivate a hibernating process, use "GO".
"GO" is like "END" except that it cancels the hibernation of "WAIT". Such
activation may require a few seconds (up to five for Apollo) actually to take
effect, however.
"SHOT" is like "END" except that it allows the user to change the maximum
number of energizations NENERG at the end of the on-going energization. There
will be a subsequent prompt for the new NENERG (either one or a full vector for
all processes). If "SHOT ALL" is used, a subsequent implied "SHOW" will confirm
the modified NENERG for all processes.
2
Rulebook ATP (junio 1996 - internet)
H19b
3
"WIDTH" allows the user to adjust the column width of the output.
The
command is to be followed by the maximum column width, which must not be less
than 79 to avoid
rejection.
This is the same as the special-request word
"TRUNCATE OUTPUT LINES".
Without any such declaration, the truncation width is
set equal to the output width KOL132 as defined by STARTUP at the start of a new
data disk file (not by $STARTUP or $WIDTH, however). To see the full row of the
"SHOW" table requires 102 columns, with any smaller figure truncating the 40byte file name on the right. The full width of "SHOW TOP" requires an extra 8
columns (i.e., 110).
"CARD" results in the conversion of the UNFORMATTED output file of a
process into 80-column FORMATTED output cards. Follow the command by either the
process number (the row number of the "SHOW" display) or by the file name
following the tag "FILE=" (e.g., "CARD FILE=binary.bin).
This is the input.
The output will be punched cards (access by $PUNCH). For the inverse operation
(for FORMATTED input and UNFORMATTED output), use "CARD READ", after which the
user must connect his own input and output files using $OPEN.
As a prompt will
clarify, these involve units 87 and 88, respectively, and these must be followed
by "GO" to actually perform the conversion. The "CARD" command is useful if the
Monte Carlo simulation has been split between two or more incompatible computers
or operating systems.
Of course, in FORMATTED form, results can be exchanged
between any two EMTP computers, whereas UNFORMATTED output files generally can
not be. Punched cards provide a universal medium of exchange, after which "CARD
READ" restores the original, computer-dependent UNFORMATTED form.
Also, the
"CARD" command allows for easy human inspection and mechanical editing of output
files, should this ever prove to be necessary or desirable.
"HELP" produces explanation of the sort now being read.
"QUIT" will exit "OPMC" in civilized fashion, returning to the opening EMTP
prompt after the case-summary timing line that generally is of no interest
(ignore it).
Rulebook ATP (junio 1996 - internet)
H19d
1
XIX-D. "CHANGE SWITCH" to Convert Former Switched-R,L Elements to Type-99, 98
Section II-A-42 explains the reason for the "CHANGE SWITCH" feature in
considerable detail, and that introduction will not be repeated here. Nor will
there be any explanation of former switched-R and switched-L element formats,
which can be found in Rule Books printed earlier than the 1982 removal of such
elements.
Following the "CHANGE SWITCH" request, the user can place an old EMTP data
in its entirety, if this is most convenient. What the program does is discard
all input cards through the first blank card (for a complete data case, this
would be the blank card ending branch cards).
Then it reads cards that are
assumed to be switch cards, until the blank card terminating these. All later
cards, through the following "BEGIN NEW DATA CASE" separator card, are also
ignored. So, it is only switch cards that are considered, and only the switchedR and switched-L elements among these are actually processed. Other switches are
ignored.
This illustrated by the second subcase of BENCHMARK DC-14, which
contains informative comment information:
BEGIN NEW DATA CASE
C
2nd of 2 subcases converts old Type-91, 92, or 93 to pseudo-nonlinear.
CHANGE SWITCH
NODE1 NODE2
1.0
{ Series R-L-C will be discarded, of course
91LEFT RIGHT
0.3E6
{ From p. 20 example of 1980 Rule Book }
1
0.0
300.
0.3
200.
0.6
150.
1000.
150.
9999
91 NODE1 NODE2 COPYL COPYR .25E6
{ Final card from p. 20 of 1980 Rule Book
BLANK card ending program branch cards.
This is flag that switches follow.
C
Type-92 switched-R element follows (to be converted):
92JDAYA LMONA
8.5
3.E5
3.5E5
3
C
Type-93 switched-L element follows (to be converted):
93SENDA NEUTRL
4.2
2.5
0.7
3.3
1
BLANK card terminating program switch cards
BEGIN NEW DATA CASE
$PUNCH
{ Flush the punched-card output of equivalent pseudo-nonlinear elements
BLANK
Punched output includes the original switch cards on comment cards as
documentation for the Type-98 and Type-99 elements that follow.
Other comment
cards label the new data. This is illustrated by the beginning of the punched
output from BENCHMARK DC-14:
Marker card preceding new EMTP data case.
Comment card.
NUMDCD = 63.
Convert switched-R,L cards to pseudo-nonlinear.
This code will read data types 91-Time-Dependent
and punched as pseudo-nonlinear elements to meet
Type-91: piecewise linear resistor
Characteristic.
0.0
300.
Characteristic.
0.3
200.
Characteristic.
0.6
150.
Characteristic.
1000.
150.
Characteristic.
9999
Type-91: piecewise linear resistor
Comment card.
NUMDCD = 77.
Comment card.
NUMDCD = 78.
Type-92: switched resistance
Comment card.
NUMDCD = 80.
Type-93: Switched inductance
Request for flushing of punch buffer.
|BEGIN NEW DATA CASE
|C
2nd of 2 subcases converts old Type-91, 92, or 93 to pseudo-nonlinear.
|CHANGE SWITCH
R, 92-Switched Resistance, and 93-Switched Inductor. Such old data will be converted,
modern EMTP requirements.
|91LEFT RIGHT
0.3E6
1
|
0.0
300.
|
0.3
200.
|
0.6
150.
|
1000.
150.
|
9999
|91 NODE1 NODE2 COPYL COPYR .25E6
|C
Type-92 switched-R element follows (to be converted):
|C 3456789012345678901234567890123456789012345678901234567890
|92JDAYA LMONA
8.5
3.E5
3.5E5
3
|C
Type-93 switched-L element follows (to be converted):
|93SENDA NEUTRL
4.2
2.5
0.7
3.3
1
|$PUNCH
{ Flush the punched-card output of equivalent pseudo-nonlinear elements
Rulebook ATP (junio 1996 - internet)
H19d
A listing of 80-column card images now being flushed from punch buffer follows.
===============================================================================
1234567890123456789012345678901234567890123456789012345678901234567890123456789
===============================================================================
C 91LEFT RIGHT
0.3E6
91LEFT RIGHT
3333.
C
VSTART
0.3E6
C
TR in sec.
R(TR) in ohms
C
0.0
300.
0.0
300.
C
0.3
200.
0.3
200.
C
0.6
150.
0.6
150.
C
1000.
150.
1000.
150.
C
9999
9999
:
:
=========< End of LUNIT7 punched cards as flushed by $PUNCH request >=======
2
Rulebook ATP (junio 1996 - internet)
H19e
1
XIX-E. "OLD TO NEW ZNO" to update pre-"M39." ZnO data cards
Section II-A-23 explains access to this supporting program by means of an
"OLD TO NEW ZNO" request.
Only those with ZnO branch cards predating "M39."
program versions of the spring and summer of 1984 need be concerned, of course.
Old ZnO branch cards are easily recognized, since data is split into two or more
isolated groups.
A Type-92 nonlinear element just reserved space for the ZnO
arrester, and it involved a dummy characteristic. Parameters of the ZnO itself
were read from special data cards immediately before the output-variable (usually
node-voltage) specification cards of Section XII.
The "OLD TO NEW ZNO" special request is to be followed by the complete, old
data case.
The conversion routine deals with variable classes, counting blank
cards that terminate these, so be careful if other than a complete data case is
supplied.
As an illustration, consider the 2nd subcase of BENCHMARK DC-14.
There is no printout at all while the program is executing, except for any
comment cards. When the ZnO data conversion is complete, there will be a oneline message to this effect, as shown by the following output:
C
1
2
3
4
5
6
7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|------------------------Request to convert old ZnO data to new formats.
|OLD TO NEW ZNO
{ Spe
Done with ZnO conversion in "SATURA" of overlay 24.
Timing figures characterizing central processor (CP) solution speed. ------
It is the user's responsibility to pick up the punched cards (via $PUNCH
request), since otherwise, there is no output.
Rulebook ATP (junio 1996 - internet)
H19g
1
XIX-G "SATURA" TO DERIVE (ψ,i) PEAKVALUE CURVES
Purpose & Applications
The specification of nonlinear inductors requires a (flux-current)
saturation curve relating the total flux linkage to the element current.
Such
curve can be derived, either by using RMS (voltage, current) readings, or by
using a (current, incremental inductance) characteristic.
Both approaches are possible, and will be discussed separately, because of
the differences in data entry.
The punched results ([Equation: psi, i]) then can be used in the saturable
transformer component model (section IV-E) or in the nonlinear inductor (type-98
pseudo-nonlinear reactor or type-93 nonlinear inductance) that can be added
externally to linear transformer models obtained via BCTRAN (section XIX-C) or
XFORMER (section XIX-A).
Although the resulting saturation curve will be single-valued, hysteresis
can be taken into account by manually displacement of the values of the current.
These results than can be used for the type-96 pseudo-nonlinear hysteric reactor
(section V-D).
This solution is an alternative for the special supporting
routine HYSDAT (section XIX-H).
Input data deck structure for SATURA
In general, an input data-deck for the supporting routine SATURA has the
following structure:
1. BEGIN NEW DATA CASE
2. SATURA - special request to activate supporting routine SATURA (see
section II-A3. $ERASE - request (optional) to clear punch buffer
4. Per unit base specification card
5. Card grouping, supplying (IRMS, VRMS) or (current, incremental inductance)
break points, terminated by a special flag card
6. $PUNCH - request (optional) to activate punching
Remark that the points 3 through 6 may be repeated as many times as
desired.
Each such grouping then is considered as a separate data case,
corresponding to a different saturation curve.
7. BLANK CARD ending all saturation cases
8. BEGIN NEW DATA CASE
9. BLANK CARD ending all cases
For an example of such input, the reader is referred to benchmark DC13
(first subcase) or to section XIX-G-3.
Because of the possibility of two
different approaches, two different data entries will be discussed next:
- (IRMS, VRMS) data entry;
- (I,L) data entry.
Only card type 4 and 5 will be discussed.
explanatory.
All other cards are self-
Rulebook ATP (junio 1996 - internet)
H19g
XIX-G-2.a. (IRMS, VRMS) data entry
169
With an impressed sinusoidal voltage, an RMS reading of the non-sinusoidal
current into the winding is obtained. Supporting program "SATURA" is designed to
convert from the user's RMS (v-i) curve to the peak values of a (ψ-i) curve
needed for transient simulation.
The user inputs his (v-i) curve (RMS values) as a sequence of points, with
linear interpolation between these values assumed. The output (ψ-i) curve (peak
values) is likewise piecewise-linear with the same number of points. Following
approximations are made:
1. The use of linear interpolation in between points.
2. The use of finite-difference approximation to sinusoidal excitation. Onedegree step-size is used, along with trapezoidal-rule integration where
needed.
3. Hysteresis is ignored.
Let us discuss the data entry in more detail now.
will be discussed here.
Only card type 4 and 5
Card 4. The card format for the per unit base specification card :
170
2
Rulebook ATP (junio 1996 - internet)
H19g
3
Parameters:
FREQ: frequency (in Hz) of the impressed sinusoïdal voltage source.
VBASE: single-phase base voltage (in kV) on which the input break points are
based.
SBASE: single-phase base power (in MVA) on which the input break points are
based.
KTHIRD: parameter controlling the type of output.
= 0 : only first-quadrant output;
= 1 : full curve (first- and third-quadrant output).
Card 5. Next comes a card grouping, supplying the (IRMS,VRMS) break points :
Only one breakpoint per card can be specified. One should start by specifying
the break point closest to the origin (omitting point (0. ,0.), though), and then
moving continuously away.
The curve must be single-valued.
Successive slopes
should be non-decreasing.
The slope defined by the last breakpoint will be
extrapolated to infinity (cfr. fig. 1).
Values are in per unit, based on the
previously-specified single-phase base :
S base
(kA) 27
V base
I RMS (pu) = I RMS (A) / I base (A) 28
I base =
V RMS (pu) = V RMS (kV) / V base (kV)
The card format to be used is as follows :
171
- The maximum number of breakpoints is limited to 100.
- If the saturation curve is intended for a type-98 pseudo-nonlinear
element, a maximum of five breakpoints is recommended, in order to avoid
numerical tracking problems.
- On the other hand, for a type-93 true nonlinear element, many breakpoints
around the kneepoint of the saturation curve should be used whenever a
smooth approximation of the nonlinear magnetizing current is of interest.
This card grouping should be terminated by following special flag card :
Rulebook ATP (junio 1996 - internet)
H19g
172
XIX-G.2.b. (I,L) data entry
Instead of an (IRMS, VRMS) characteristic, the user has the option of inputting
a current versus incremental inductance characteristic. The trapezoidal rule of
integration is then used in this case, to convert the inductance curve into the
desired output curve of flux versus current :
ψ (i) = ∫10 L(n)dn
L + Lk - 1
}.( ik - ik - 1)
ψ k = ψ k - 1+ { k
2
ψ1 = 0
k = 2,3,,,,
173
Card 4. The card format for the per unit base specification :
4
Rulebook ATP (junio 1996 - internet)
H19g
5
174
Parameters:
FLAG: = -1; special request flag for (I,L) data entry (as opposed to (I RMS,
VRMS) data entry, explained in point 2.a).
SCALI: multiplicator for the current coordinate of the input breakpoint, in
order to obtain results in Amps.
SCALL: muliplicator for the inductance coordinate of the input breakpoint, in
order to obtain results in Henries.
Note: If both SCALI and SCALL are blank or zero, the supplied characteristic
is understood being specified in units of Amps and Henries, so that no
conversion is necessary.
KTHIRD: see point 2.a.
Note: Although for the (I,L) data entry, the origin point (0. ,0) of the
saturation curve appears in the printed output, this value will be omitted in
the punched output.
Card 5. Card grouping specifying a current versus an incremental inductance
characteristic.
The current breakpoints ik must be monotone increasing, starting with value zero.
Values are in Amps (if SCALI = 0) or otherwise, i k * SCALI is in Amps.
The
incremental inductance values
 dψ 
32
Lk = 
 di i k
all must be positive.
Lk * SCALL is in Henries.
Values are in Henries (if SCALL = 0) or otherwise,
The card format to be used is as follows :
175
The same recommendations as in point 2.a. are valid. This card grouping should
be terminated by the same special flag card, as explained in 2.a.
3. Example
Rulebook ATP (junio 1996 - internet)
H19g
6
Consider a five-leg core-type transformer with STAR-connected high-voltage
winding with grounded neutral and DELTA-connected low voltage winding (YNd5).
Rated power:
750 MVA
Rated voltage: 420 kV/27 kV (line-line values)
From the positive-sequence excitation test, following data are available :
Table 1.
where
Uex
Iex
Pex
KV
A
KW
22.76
8.20
206.2
24.29
11.35
240.26
25.64
15.50
270.13
27.00
21.16
311.00
27.50
24.68
323.03
28.47
31.63
355.48
29.10
38.30
385.41
32.50
80.97
560.00
Uex = excitation voltage (RMS, line-line value)
Iex = excitation current (RMS, three-phase average)
Pex = excitation loss (three-phase value)
As a first approximation, the RMS excitation current Iex,w in a DELTA winding
equals
I ex ,w ≈ I ex / 3 (harmonics neglected) 33
Further, the RMS ma
approximated by
gnetizing
current
I m ,ω ≈
Hence, the
characteristic :
above
measured
I
2
ex,w
Table
Im,w
in
 P 
-  ex 
 3 U ex 
1
the
DELTA
winding
is
2
reduces
to
Table 2:
Uex
Imw
KV
A
0.8430
3.65
0.8996
5.66
0.9496
8.23
following
saturation
Rulebook ATP (junio 1996 - internet)
H19g
1.000
11.60
1.019
13.70
1.054
17.78
1.078
21.66
1.204
46.40
7
When converting this characteristic into input data for supporting routine
SATURA, we first need to convert to per unit values for the equivalent phase.
Sbase = 750/3 = 250 MVA
Vbase = 27 kV
Ibase = 750/(3*27) = 9259A
The input data (table 3) can be obtained from table 2, using the following
conversion formulas :
IRMS(pu) = IRMS(A) / Ibase(A)
VRMS(pu) = VRMS(kV) / Vbase(kV)
This finally results in following table :
Table 3:
VRMS(pu)
IRMS(pu)
0.8430
0.3942 E-3
0.8996
0.6113 E-3
0.9496
0.8888 E-3
1.000
1.253
E-3
1.019
1.480
E-3
1.054
1.920
E-3
1.078
2.333
E-3
1.204
5.011
E-3
The input file for supporting routine SATURA then looks as follows:
BEGIN NEW DATA CASE
C input data for supporting routine SATURA
C Excitation test results for 3-phase transformer
C
UBASE = 27 kv (RMS, equivalent phase)
C
SBASE = 750/3 = 250 MVA (equivalent phase)
C
Ibase = 250 / 27 = 9.26 kA
C
C 345678901234567890123456789012345678901234567890123456789012345678901234567890
C
1
2
3
4
5
6
7
8
$ERASE
SATURATION
50.0
27.00
250.0
1
0
.3942
-3 .8430
.6113
-3 .8996
.8888
-3 .9496
1.253
-3 1.0
Rulebook ATP (junio 1996 - internet)
1.480
1.920
2.333
5.011
-3
-3
-3
-3
9999
H19g
1.019
1.054
1.078
1.204
$PUNCH
BLANK LINE ending saturation data
BEGIN NEW DATA CASE
BLANK LINE ENDING ALL CASES
The corresponding output looks as follows :
Comment card.
NUMDCD = 1.
|C data://A/GUIDO/SATURA3.IN
Marker card preceding new EMTP data case.
|BEGIN NEW DATA CASE
Comment card.
NUMDCD = 3.
|C input data for supporting routine SATURA
Comment card.
NUMDCD = 4.
|C Excitation test results for 3-phase transformer
Comment card.
NUMDCD = 5.
|C
UBASE = 27 kv (RMS, equivalent phase)
Comment card.
NUMDCD = 6.
|C
SBASE = 750/3 = 250 MVA (equivalent phase)
Comment card.
NUMDCD = 7.
|C
Ibase = 250 / 27 = 9.26 kA
Comment card.
NUMDCD = 8.
|C
Comment card.
NUMDCD = 9.
|C 345678901234567890123456789012345678901234567890123456789012345678901234567890
Comment card.
NUMDCD = 10.
|C
1
2
3
4
5
6
7
8
Erase all of 0
cards in the punch buffer.
|$ERASE
Request for magnetic saturation computation.
|SATURATION
Misc. const.
5.000E+01 2.700E+01 2.500E+02
0 |50.0
27.00
250.0
1
0
(I, V) point.
3.94200E-04 8.43000E-01
|.3942
-3 .8430
(I, V) point.
6.11300E-04 8.99600E-01
|.6113
-3 .8996
(I, V) point.
8.88800E-04 9.49600E-01
|.8888
-3 .9496
(I, V) point.
1.25300E-03 1.00000E+00
|1.253
-3 1.0
(I, V) point.
1.48000E-03 1.01900E+00
|1.480
-3 1.019
(I, V) point.
1.92000E-03 1.05400E+00
|1.920
-3 1.054
(I, V) point.
2.33300E-03 1.07800E+00
|2.333
-3 1.078
(I, V) point.
5.01100E-03 1.20400E+00
|5.011
-3 1.204
Special termination-of-points card.
|
9999
Derived saturation curve gives peak current as a function of flux :
Row
Current [amp]
Flux [volt-sec]
1
0.0000000000
0.0000000000
2
5.1618795027
102.4604983603
3
12.3418337241
109.3398153320
4
17.5040965216
115.4169504661
5
24.8062758133
121.5427026812
6
31.4592838067
123.8520140322
7
39.1754389519
128.1060086260
8
49.5865689002
131.0230334903
9
97.2627733421
146.3374140282
9999
Next, check the derived curve by independent reverse computation.
Assuming sinusoidal voltage (flux) at the level of each point,
rms current is found numerically. This curve should be equal to the original I-V points inputted.
Row
Current in P.U.
Voltage in P.U.
2
0.00039420
0.84300000
3
0.00061130
0.89960000
4
0.00088880
0.94960000
5
0.00125300
1.00000000
6
0.00148000
1.01900000
7
0.00192000
1.05400000
8
0.00233300
1.07800000
9
0.00501100
1.20400000
Request for flushing of punch buffer.
|$PUNCH
A listing of 80-column card images now being flushed from punch buffer follows.
===============================================================================
1234567890123456789012345678901234567890123456789012345678901234567890123456789
===============================================================================
C <++++++> Cards punched by support routine on 29-Jun-89 09.04.57 <++++++>
C SATURATION
C 50.0
27.00
250.0
1
0
C .3942
-3 .8430
C .6113
-3 .8996
C .8888
-3 .9496
C 1.253
-3 1.0
C 1.480
-3 1.019
C 1.920
-3 1.054
C 2.333
-3 1.078
C 5.011
-3 1.204
C
9999
5.16187950E+00 1.02460498E+02
1.23418337E+01 1.09339815E+02
1.75040965E+01 1.15416950E+02
2.48062758E+01 1.21542703E+02
3.14592838E+01 1.23852014E+02
3.91754390E+01 1.28106009E+02
4.95865689E+01 1.31023033E+02
9.72627733E+01 1.46337414E+02
9999
=========< End of LUNIT7 punched cards as flushed by $PUNCH request >=======
8
Rulebook ATP (junio 1996 - internet)
H19g
9
The resulting (ψ,i) characteristic looks as follows :
176
After the flux ψ(t) exceeds saturation flux [Equation: psi sub s], the last
slope of the non-linearity is determined by the air-core inductance L air (the
additional flux travels in air).
The air-core inductance Lair can be approximated by the geometry of the
corresponding winding (in this case the low voltage winding).
2
Lair ≈ µ 0 .ω . A / I
where
A =
I =
w =
µ0 =
cross-sectional area of the winding (17,925 cm2)
winding length leg length (263 cm)
number of turns (54)
permeability of free space (1.256637 * 10-8 H/cm)
For the transformer considered, Lair ≈ 0.0025 H.
This value includes the leakage impedance of the low voltage winding. If we use
the BCTRAN Matrix for the linear transformer model, the nonlinear elements are
connected to the low voltage transformer terminals in addition to the linear
transformer elements. (In this case it is not necessary to correct Lair by the
winding leakage inductance) (By using the [A] [R] Matrix without excitation
information, it is also not necessary to correct the nonlinear inductance
elements by the linear magnetizing reactance).
For the transformer in question ψs≈1.2ψr≈146Vs.
If ψres=0.6ψr=72.9Vs in one leg, the flux in this winding at its first maximum
becomes : 2 * 121.54 Vs + 0.6 * 121.54 Vs = 316 Vs.
The air flux ψair= 316 Vs - 146 Vs = 170 Vs.
The last point of the nonlinear characteristic can be calculated from :
∆Imw = 170Vs/0.0025H : 68000A
Imw = 68000 A + 97 A = 68097 A
Rulebook ATP (junio 1996 - internet)
H19g
10
Rulebook ATP (junio 1996 - internet)
H19h
1
XIX-H. "HYSDAT" to create type-96 hysteretic inductor characteristic
1. Purpose and applications
The specification of remanent magnetism requires a (flux-current) hysteresis
curve.
Recall that the shape of the hysteresis loop for an inductor depends
primarily on the material of the core, while the scaling of the hysteresis loop
depends on geometry, the number of turns and other construction factors.
What is actually stored in supporting routine HYSDAT is essentially the
shape of the loop for a certain type of material. The user then should provide
information for the actual reactor being specified, so that a correct scaling can
be performed. Hence the data entry is very simple.
The punched results ([Equation: psi, i]) can be used for the type-96
hysteretic inductor (section V-D).
Up to now, only one curve shape
(corresponding to ARMCO Mn) can be selected. With some care, supporting routine
SATURA (section XIX-G) can be used to generate hysteresis loops for other
materials, it should be noted.
2. Input data deck structure for HYSDAT
In general, an input
following structure :
data
deck
for
supporting
routine
HYSDAT
has
the
1. BEGIN NEW DATA CASE
2. HYSTERESIS - special request to activate supporting routine HYSDAT
(see section II-A-45).
3. $ERASE - request (optional) to clear punch buffer
4. shape specification card
5. scale specification card
6. $PUNCH - request (optional) to activate punching.
Remark that the points 4 through 6 may be repeated as many
times as desired. Each such grouping then is considered as a separate
data case, corresponding to a different hysteresis loop.
7. BLANK CARD ending all hysteresis loops
8. BEGIN NEW DATA CASE
9. BLANK CARD ending all cases
For an example of such input, the reader is referred to benchmark 13 (third
subcase). Only card 4 and 5 deserve a further explanation. All other cards are
self-explanatory.
Card 4. Shape specification card :
Since the shape of the hysteresis loop for an inductor depends primarily on the
material of the core, such core material specification should be possible. This
can be obtained using following card format :
Rulebook ATP (junio 1996 - internet)
H19h
177
Parameters:
ITYPE: type code specifying the magnetic core material of the inductor.
= 1: ARMCO Mh oriented silicon steel
(perhaps, other alternatives will be provided later).
LEVEL: flag, specifying the desired level
= 1: hysteresis loop represented in
= 2: hysteresis loop represented in
= 3: hysteresis loop represented in
= 4: hysteresis loop represented in
of accuracy.
4 to 5 points
10 points
15 points
20 to 25 points.
Card 5. Scale specification card :
The scaling of the hysteresis loop depends on the geometry, the number of turns
and other factors of the actual construction.
This scaling can be fully
specified via the location of the positive saturation point. By definition, this
is the point in the first quadrant where the hysteresis loop changes from being
multivalued to being single-valued. Following card format allows you to specify
this point :
178
Parameters:
CURSAT: current (in A) of the positive saturation point.
FLXSAT: flux (in Vs) of the positive saturation point.
Note: By definition, the positive saturation point is the point of the first
quadrant where the hysteresis loop changes from being multivalued to being
single-valued.
One suggested way of determining values for both these
coordinates from normal or DC magnetizing curves is as follows. Beginning at the
2
Rulebook ATP (junio 1996 - internet)
H19h
3
right (i.e. linear part) on the normal magnetization curve, a straight-edge is
used to extrapolate this line back to the left. The point where this straight
line and the actual curve first begin to diverge is then taken as the positive
saturation point.
It is recommended to use the DC magnetization curve, since this is more readily
available than hysteresis loops.
A hysteresis loop should be here
3. Example
The following is an extract from DC13.
The input looks as follows :
4BEGIN NEW DATA CASE
HYSTERESIS
C ITYPE
LEVEL
{ Request Armco M4 oriented silicon steel -- only 1 available
1
2
{ That was ITYPE=1. As for LEVEL=2, moderate accuracy output
500.
1.0
{ Current and flux coordinates of positive saturation point
$PUNCH
BLANK card ending "HYSTERESIS" data cases
The output looks as follows :
Comment card.
NUMDCD = 1.
|C data://A/GUIDO/HYS.IN
Marker card preceding new EMTP data case.
|BEGIN NEW DATA CASE
Request to make Type-96 hysteresis branch cards. |HYSTERESIS
Comment card.
NUMDCD = 4.
|C ITYPE
LEVEL
{ Request Armco M4 oriented silicon steel -- only 1 available
Begin B-H generator. ITYPE = 1. LEVEL = 2.
|
1
2
{ That was ITYPE=1. As for LEVEL=2, moderate accuracy output
CURSAT, FLXSAT =
5.0000E+02
1.0000E+00
|
500.
1.0
{ Current and flux coordinates of positive saturation point
Derived characteristic for Type-96 pseudo-nonlinear EMTP branch card follows.
Current
Flux
-1.25000000E+02 -9.70588235E-01
-1.56250000E+01 -9.19411765E-01
9.37500000E+00 -8.47058824E-01
2.18750000E+01 -6.58823529E-01
4.21875000E+01 5.70588235E-01
6.56250000E+01 7.52941176E-01
1.12500000E+02 8.64705882E-01
2.07812500E+02 9.41176471E-01
5.00000000E+02 1.00000000E+00
6.87500000E+02 1.00588235E+00
9999.
Request for flushing of punch buffer.
|$PUNCH
A listing of 80-column card images now being flushed from punch buffer follows.
===============================================================================
1234567890123456789012345678901234567890123456789012345678901234567890123456789
===============================================================================
C <++++++> Cards punched by support routine on 29-Jun-89 06.33.56 <++++++>
C HYSTERESIS
C C ITYPE
LEVEL
{ Request Armco M4 oriented silicon steel -- only 1 availab
C
1
2
{ That was ITYPE=1. As for LEVEL=2, moderate accuracy outp
C
500.
1.0
{ Current and flux coordinates of positive saturation poi
-1.25000000E+02 -9.70588235E-01
-1.56250000E+01 -9.19411765E-01
9.37500000E+00 -8.47058824E-01
2.18750000E+01 -6.58823529E-01
4.21875000E+01
5.70588235E-01
6.56250000E+01
7.52941176E-01
1.12500000E+02
8.64705882E-01
2.07812500E+02
9.41176471E-01
Rulebook ATP (junio 1996 - internet)
5.00000000E+02
1.00000000E+00
6.87500000E+02
1.00588235E+00
9999.
=========<
End of LUNIT7 punched cards as flushed by
$PUNCH
request
>=======
. "ZNO FITTER" to Punch Type-92 nonlinear branch cards
H19h
4
Rulebook ATP (junio 1996 - internet)
H19i
1
XIX-I-1 Purpose and application
The supporting routine "ZNO FITTER" can be used to derive a true (as opposed to
pseudo) non-linear representation (type 92 branch card) for a zinc-oxide surge
arrester, starting from manufacturer's data for the surge arrester.
The model can be used successfully to represent both gapless arresters as well as
arresters equipped with series passive gaps or shunt passive gaps. Series active
gaps (i.e. current limiting) can not be represented adequately by means of the
ZNO model described here.
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.
In essence, such usage represents the SiC block very
accurately ("two exponential segments appear to provide a very adequate fit")
while ignoring totally the dynamics of the gap (the gap modelling after
flashover). In the original EMTP, a dedicated SiC surge arrester model (type 94
branches) did exist. Data acquisition was too complicated and not sufficiently
documented. Hence, support of that model was terminated.
The basic constraint equation for ZnO modelling is resistive, and is highly
nonlinear (exponential):
q
 v 
i = p
 36
 V ref 
where "i" is the arrester current, "v" is the arrester voltage, and "p", "V ref",
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, a good choice of
Vref normalizes the equation, and prevents numerical overflow during the
exponentiation. Constants "p" and "q" are unique parameters of the device.
Due to the extreme nonlinearity of ZnO characteristics, very little current is
drawn for voltages that are substantially below the rated voltage (e.g.,
0.5**30 = 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 and low currents (see AMIN; card number 2), the
so-called leakage current region. 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.
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 difference is made through the specification of VFLASH (see
first miscellaneous data card) and A5 (see second miscellaneous data card). The
gapped arrester requires the specification of two (I,V) characteristics (one
before and one after flashover), while the gapless arrester requires only one
such (I,V) characteristic (before flashover).
The calculation of the
exponentials fitting the user-specified (I,V) characteristics can be automated
via the separate supporting routine ARRDAT.
"ARRDAT" fits exponential curves in the log-log plane using the least-squares
approach.
There are two options for the determination of the number of
exponentials (curve segments) that are to be used. Variable NEXP (miscellaneous
data cards) is used as a flag to select between both options.
Rulebook ATP (junio 1996 - internet)
1.
2.
H19i
the user may specify the number of exponentials or curve segments, and the
boundaries of the segments.
the program can determine the number of exponentials or curve segments
automatically, based on the maximum permissible relative fitting error
specified by the user. This is the more common case.
An optional "BRANCH" card allows the user to name the terminal nodes for the
Type-92 branch cards that will be punched.
Punched results are immediately in
the correct format to be used for nonlinear branches of type 92 (section V.E).
For an example, we refer to DC39.
XIX-I-2 Input data deck structure for ZNO FITTER
In general, an input data deck structure for the supporting routine ARRDAT has
the following structure:
1. BEGIN NEW DATA CASE
2. ZNO FITTER
3. $ERASE (optional)
4. BRANCH specification card (optional)
5. miscellaneous data cards
6. card grouping to specify the (I,V) characteristic, terminated by blank
card
7. cards that specify the flashover behaviour, terminated by a blank card
(only when A5 < 0 and VFLASH > 0)
8. BLANK card terminating ARRDAT usage
9. $PUNCH
10. BEGIN NEW DATA CASE
11. BLANK
Let us discuss the above card sequence in more detail now.
1. BEGIN NEW DATA CASE
2. Request for supporting routine "ZNO FITTER"
179
3. $ERASE (optional)
$ERASE request is optional, and serves to clear the punch buffer
4. BRANCH specification card (optional)
2
Rulebook ATP (junio 1996 - internet)
H19i
3
180
Note:
[SEND(i),REC(i)] are the terminal ends (sending end
for phase i. The usual naming convention is used.
indicates direct connection to ground. The number of
by variable IPHASE on the miscellaneous data card
number 1).
and receiving end)
A blank for a name
phases is specified
(see point 5, card
5. Miscellaneous data cards
There are two such cards.
The first one bears flag variables (to select the
proper model) and fitting specifiers.
The second one contains the base value
specifications.
Card Number 1:
181
Parameters:
NEXP:
flag to select between the two possible fitting options.
<0: request for the automatic determination of the number of exponential
segments. The user will specify the (I,V) characteristic (see point 6)
>0: number of segments, requested by the user. He will specify both the
(I,V) characteristics as well as the boundaries of each exponential
segment manually (see point 6 data).
IPHASE: the number of phases of the arrester bank for which branch cards are to
be produced.
If left blank or keyed with zero, the value will be
changed to unity, meaning that a single arrester is to be modelled. If
IPHASE > 1, only one phase will be punched explicitely.
For all other
phases, the reference branch option is used.
Do not forget to use the
optional BRANCH option, specially designed to allocate node names to the
nonlinear branches in the punched output.
ERRLIM: this value only has meaning when flag NEXP < 0. ERRLIM is the maximum
relative error permitted during the automatic determination of the
number of segments (assuming that the user has keyed NEXP negative). A
blank or zero field will be converted to the default value of 1/20. The
relative error is: ERROR = ABS (C1 - C2) / C1, by definition, where C1 is
the value of the current as specified by the user, and C2 is the value of
the current as predicted by the exponential approximation.
Rulebook ATP (junio 1996 - internet)
H19i
IPRZNO: controls diagnostic printout.
Suggested values are between zero and
three. The amount of printout increases with the variable value.
VREF:
the reference voltage (RMS value) that will be used to scale the voltage
data points (see point 6, card grouping that specifies the
(I,V) characteristic).
The idea is to produce numbers close to
unity for exponentiation, thus avoiding numerical overflow.
If
left blank or keyed with zero, the value will be changed to twice
A2 of card number 2 immediately below.
Beware:1) VREF is used for all (I,V) characteristics, both before and
after flashover.
2) When Vref is ill conditioned (i.e. V/Vref too far from unity), the
fitter will redefine Vref, after giving the user a proper warning.
VFLASH: the gap flashover voltage in units of [volts]. This is a peak (or crest)
value, not an RMS (effective) value. Leave this field blank, or key with zero
if the arrester is to be gapless.
Card Number 2:
182
Parameters:
A1: is a divider used for the scaling of voltage points. For example, A1
could be used for the voltage rating of the arrester upon which the input
data are based, in order to convert the specified voltage points into perunit values. This is in units of [volts] RMS.
A2: This really is just a multiplicative scaling factor for the voltage
points, that can be used creatively in more than one way by the user. For
example, A2 can be used to convert the arrester voltage points from perunit to [volts].
Alternatively, the user could
produce the
characteristic of an electrically similar arrester having a different
voltage rating.
The properties of similar arresters do not change with
rating, provided a proportional number of blocks is used to obtain the new
rating. Note that if VREF is maintained proportional to A2, then similar
arresters will have identical parameters at all ratings.
A3: is a multiplier used for the additional scaling of voltage points.
For example, it can be used to obtain a minimum characteristic (maximum
energy) from a maximum characteristic (maximum voltage).
The most
commonly used value is unity, however.
A4: is a current multiplier that is used to obtain results for arresters
with a number of columns that differs from that for which the data points
are known.
An even (homogeneous) current distribution is assumed among
all columns.
4
Rulebook ATP (junio 1996 - internet)
H19i
5
A5: is a flag signaling the existence (or lack of it) of additional data
describing the arrester after flashover of the arrester passive gap.
a) If zero or unity, the arrester is gapless, and no additional data
follows;
b) If negative, additional data follows (to represent dissimilar material
for a shunt or a series passive gap). See point 7 (cards to specify the
flashover behaviour).
c) If positive but not unity, there is
no further data.
Instead, the
original input data representing the situation before flashover are to be
used to represent the characteristic after flahover, simply by
multiplication of the voltages by A5.
This is to represent similar
material for a shunt or a series passive gap.
AMIN: is the minimum current above which the exponential approximation of
the arrester characteristic begins.
For currents I < AMIN, a linear
rather than an exponential approach is used in order to speed up the
solution, and also in order to avoid numerical problems (underflow during
exponentiation). Even if fitting a straight line that passes through the
origin, do not leave AMIN blank or zero, since the logarithm of zero is
not defined.
6. Card grouping that Specifies the (I,V) Characteristic
Cards that specify the arrester characteristic before flashover come next.
a) For the most common case of NEXP negative (see card 1 of miscellaneous data),
the program automatically determines the number of segments, and there is to be
only one data group, containing an arbitrary number of data pairs (I,V). A blank
card will terminate the grouping that defines the non-linear characteristic.
b) But for positive NEXP, there are to be NEXP segments. For each segment, a card
grouping containing an arbitrary number of data pairs (I,V) is to be specified.
Each such group is to be terminated by a blank card.
In both cases, each card can contain only one data pair (I,V), using following
format:
183
Points always must be in order of increasing current and voltage. The
interpretation will confirm the unscaled (I, V) point, as specified by the
user.
7. Cards that specify the flashover behaviour
If VFLASH of miscellaneous data card number 1 was positive, also the
characteristic after flashover needs to be specified by the user. Depending on
whether the passive gap (shunt or series) is of similar or dissimilar material,
different situations can occur:
Rulebook ATP (junio 1996 - internet)
H19i
- gap is of similar material; A5 (second miscellaneous data card) is positive,
but different from UNITY. Value A5 is used as a multiplication factor for
the voltage points of the (I,V) characteristic. Because the gap is of similar
material as the rest of the arrester, the same basic (I,V) characteristic is
used before and after flashover.
- gap is of dissimilar material, parameter A5 of miscellaneous data card number
2 is negative. In this case two additional items of information must be
supplied to define the ZnO characteristic after flashover.
First, there is to be another
card number
columns 1-12 will actually be read from the
card are assumed to remain unchanged). This
change his fitting option (user-specified
automatic determination of the best number
characteristic.
1, although only variable NEXP of
card (all other parameters of the
gives the user the opportunity to
number of exponents to fit, or
of exponents) for the flashover
Second, there are to be cards specifying the arrester characteristic after
flashover. The (I,V) pairs have the same format as previously described. Again,
the number of segments depends on the (second) NEXP value. Again, each segment
should be terminated by a blank card.
8. BLANK card terminating ARRDAT
An indeterminate number of data cases can be stacked sequentially and solved in a
single execution by the program.
Each new case follows immediately the blank
card terminating the data for the last segment of the preceding case. After the
last such ZnO data case, one extra blank card then exits the supporting program
"ARRDAT".
9. $PUNCH
As with other supporting programs, $PUNCH is used to create the Type-92 branch
cards that represent the ZnO arrester being processed. If the user wants such
output, it is his responsibility to request it. Further, do not forget either to
use the optional BRANCH specification card (see point 4), in order to be sure
that the node names will be included in the created type-92 branch cards. The
punched output is particularly valuable because it includes comment cards that
label the Type-92 branch parameters. As an example, consider the punched output
from the solution to the first subcase of BENCHMARK DC-39:
A listing of 80-column card images now being flushed from punch buffer follows.
================================================================================
12345678901234567890123456789012345678901234567890123456789012345678901234567890
================================================================================
C Rating = 192000.0
V-mult = 9.62000E-01
I-mult = 3.00000E+00
Gapless
92RECA
5555.
C
V-reference
V-flashover
4.1250000000000000E+05
9.2121212121212130E-01
C
Multiplier
Exponent
V-min
2.9479544296115170E+04
2.6530262418533470E+01
5.4505063612285050E-01
9999
5.9605957177725360E+05
9999
92RECB
RECA
92RECC
RECA
2.6530262418533470E+01
10. BEGIN NEW DATA CASE
11. BLANK
5555.
5555.
4.8665227581674000E-01
6
Rulebook ATP (junio 1996 - internet)
XIX-I-3 Illustrative Usage:
The data of
H19i
7
BENCHMARK DC-39
Consider a single-column ZnO arrester.
The voltage points are known for a
single-column ZnO arrester rated 1-KV (crest or peak value), maximum voltage
characteristic.
The current points are given in [amperes] (crest).
The user
wants parameters for a 192-KV (rms)(A2), 3-column arrester with a maximum energy
characteristic. The conversion factor to this characteristic is 0.962 (A3), by
assumption. The arrester is equipped with a shunt gap, and the shunted part is
electrically similar (A5 should be positive, but different from unity) to the
rest of the arrester. The shunt gap consists of 12% additional blocks. That is,
after gap sparkover, the arrester contains 0.89286 (1/1.12 = 0.89286) of the
original blocks, from which it follows that
A5=0.89286 (crestfactor).
A
reference voltage equal to 412.5KV (V REF) was chosen, since this is the expected
operating range of the 3-phase surge arrester. Finally, the arrester is assumed
to be equipped with a shunt gap that flashes over at 380KV (VFLASH) (crest). For
this basic data, three different EMTP representations are to be obtained, as
summarized in the following three subsections.
This information was used to
construct BENCHMARK DC-39, so the user is referred to this standard test case to
see the EMTP implementation.
1)
DC-39 subcase 1:
Single-Exponent Fit
(NEXP = 1)
According to the data provided above, the following values are assigned:
1)
A1 = 1000 / [Equation: root 2] is the original rating of the arrester in
[volts] (rms);
2)
A2 = 192000 is the desired rating of the output in [volts] (rms);
3)
A3 = 0.962 is the scaling factor for obtaining the desired maximum energy
characteristic;
4)
A4 = 3.0 since the original data are given for a single-column arrester,
this factor of three will convert them to the desired 3-column device;
5)
A5 = 0.89286 since the arrester before flashover contains 12% additional
blocks;
6)
AMIN = 1.E-3 [amperes] would be a common default choice, which is about the
end of the leakage current region.
2)
DC-39 subcase 2:
Double Exponential Fit
(NEXP = 2)
Next, the characteristic described above is to be fitted with two exponentials.
The border between the two segments has been determined graphically using log-log
paper to lie between 100A and 200A. All other parameters on cards number 1 and
number 2 remain unchanged.
3)
DC-39 subcase 3:
Automatic Segment Determination
(NEXP = -1)
Finally, the same data will be fitted with a relative current error of 1/20,
which means that ERRLIM = 1/20.
4) Usage of punched output
This model internally uses the compensation method.
Unlike other situations
using the compensation method for a multiphase ZnO surge arrester, the phases do
NOT need to be separated by stub lines.
Rulebook ATP (junio 1996 - internet)
H19j
1
1. Convert saturable transformer cards to linear equivalent [R],[L]
This supporting routine can be used to convert data lines for the SATURABLE
TRANSFORMER model (IV.E) into a coupled [R],[L] equivalent (type 51,52,53
branches).
The user should be carefull, however, because some inherent limitations
exist for the conversion routine:
- Although the SATURABLE TRANSFORMER component can take non-linear
behaviour into account, the type 51,52,53 equivalent branches can not:
they only provide a LINEAR equivalent. Of course, the user can add the
non-linear behaviour as an external branch, but this is tricky (zero
magnetizing current is not honored).
- Although
the
SATURABLE
TRANSFORMER
component
can
process
transformers with zero magnetizing current, type 51,52,53 can not. This
situation is similar to the XFORMER model. Recall that only the BCTRAN
model can process zero magnetizing current, because it has the AR-notation
available.
- The data lines for the SATURABLE TRANSFORMER model should be selfcontained (i.e. no reference component usage that copies the data of a
preceding transformer).
- For the ATP4 version, the punched output is not immediately usable
because the free-format output form is incorrect with respect to the node
names: the user himself should add separating commas inbetween the fields
of the node names. Please refer to punched cards of this model with
XFORMER punched cards for comparison. This is a bug that has to be cleared
in next program releases (see section J.4).
.1 Input data deck structure:
Suppose a user wants to convert a self-contained (i.e. no reference branch
usage) SATURABLE TRANSFORMER dataset into a linear equivalent [R],[L]-notation.
For that reason he would use the supporting routine "CHANGE TRANSFORMER". The
input data deck would look as follows:
1)
2)
3)
4)
5)
6)
7)
8)
BEGIN NEW DATA CASE
CHANGE TRANSFORMER
$ERASE
self-contained SATURABLE TRANSFORMER data case
remark:
- no reference component usage allowed
- no zero magnetizing current allowed
- specification of non-linear characteristic will not be
taken into account in the final linear model.
BLANK card ending CHANGE TRANSFORMER supporting routine
$PUNCH
BEGIN NEW DATA CASE
BLANK CARD ENDING ALL CASES
Remark that several point-4 data may be stacked one after the other, without
the need to separate. For an example, we refer to the first subcase of DC67.
The card formats to be used are so obvious that they do not need to be
explained.
.2 Example
Rulebook ATP (junio 1996 - internet)
H19j
Following example is an extract of benchmark DC-67, where only the first
subcase is used.
BEGIN NEW DATA CASE
CHANGE TRANSFORMER
{ Special-request word transfers to special conversion code
$ERASE
{ Rewind (erase) buffer of punched cards as we prepare to punch more
TRANSFORMER
.005
30.TRANFF 1.E4
3
.005
30.
{ 1st point of (current, flux): characteristic
.01
40.
{
2nd
point
of
(current,
flux):
characteristic
.02
45. { 3rd point ...
0.1
50. { 4th point ...
5.0
100.
{ 5th and final point of (current, flux) char.
9999
{ Special terminator bounds characteristic (current = 9999)
1GENT
OPEN
5.0
5.E4
50.
{ 1st of 2 winding cards
2LOADOFF
20.
2.E5
100.
{ 2nd and final winding card
BLANK card ends saturable TRANSFORMER components to be converted to [R], [L].
$PUNCH
{ Flush the punched-card output of just-created Type-51, 52, ...
BEGIN NEW DATA CASE
BLANK
.3 Output data deck structure:
A listing of 80-column card images now being flushed from punch buffer follows.
===============================================================================
1234567890123456789012345678901234567890123456789012345678901234567890123456789
===============================================================================
C <++++++> Cards punched by support routine on 29-Jan-91 16.20.46 <++++++>
C CHANGE TRANSFORMER
{ Special-request word transfers to special conversion code
C $ERASE
{ Rewind (erase) buffer of punched cards as we prepare to punch more
C
TRANSFORMER
.005
30.TRANFF 1.E4
C
.005
30. { 1st point of (current, flux): characterist
C
.01
40. { 2nd point of (current, flux): characterist
C
.02
45. { 3rd point ...
C
0.1
50. { 4th point ...
C
5.0
100. { 5th and final point of (current, flux) char.
C
9999
{ Special terminator bounds characteristic (current = 9999)
C 1GENT OPEN
5.0 5.E4
50.
{ 1st of 2 winding cards
C 2LOADFF
20. 2.E5 100.
{ 2nd and final winding card
51GENT OPEN
5.9066393442623E+03 ,
1.2795081967213E+06 , ,,,,
52LOADFF
1.1803278688525E+04 ,
2.4590163934426E+06 $
2.3626557377049E+04 ,
5.1180327868852E+06 , ,,,,
=========< End of LUNIT7 punched cards as flushed by $PUNCH request >=======
Note that the output is not in the legal free format: no separation by
comma's in between node names. Following section shows how data should be
modified.
.4 Usage
The first case is the representation of the saturable transformer as it
appears in its normal form:
BEGIN NEW DATA CASE
$WIDTH, 79,
{ Request narrow, 80-column LUNIT6 output as an illustration
BEGIN PEAK VALUE SEARCH, -1,
{ Time of -1 is request to read following card
0.5
1.5
2.5
3.5
{ Limit extrema to these 2 subranges
PRINTED NUMBER WIDTH, 10, 2,
{ Request max precision of 6 numbers in 80 bytes
.010
6.0
1
1
1
1
1
-1
5
5
20
20
100
100
GEN
GENT
1.E-3
3
LOADFF
1.0E0
3
TRANSFORMER
.005
30.TRANFF 1.E4
.005
30.
.01
40.
.02
45.
0.1
50.
5.0
100.
9999
1GENT OPEN
5.0 5.E4
50.
2LOADFF
20. 2.E5 100.
OPEN
1.E7
2
Rulebook ATP (junio 1996 - internet)
H19j
3
BLANK card finishing all branch cards
BLANK card ending non-existent switch cards
14GEN
200. .1591549
-1.
BLANK card terminating program source cards
1
{ Request for all node voltage outputs
C PRINTER PLOT
C 193 .5 0.0 4.0
LOAD
GEN
GENT
BLANK card terminating plot cards
$WIDTH, 132, { Done with 80 columns, so return to wide, 132-column LUNIT6 output
BEGIN NEW DATA CASE
BLANK
The next case will show the same example, but now in the [R],[L]
representation, with use of the punched card. There is a necessary manual
manipulation needed, because of program bug.
BEGIN NEW DATA CASE
$WIDTH, 79,
{ Request narrow, 80-column LUNIT6 output as an illustration
BEGIN PEAK VALUE SEARCH, -1,
{ Time of -1 is request to read following card
0.5
1.5
2.5
3.5
{ Limit extrema to these 2 subranges
PRINTED NUMBER WIDTH, 10, 2,
{ Request max precision of 6 numbers in 80 bytes
.010
6.0
1
1
1
1
1
-1
5
5
20
20
100
100
GEN
GENT
1.E-3
3
LOADFF
1.0E3
3
C
1
2
3
4
5
6
7
8
C 345678901234567890123456789012345678901234567890123456789012345678901234567890
51,GENT,OPEN,,,
5.9066393442623E+03,1.2795081967213E+06,,,,,
{remark extra comma's
52,LOADFF,,,,
1.1803278688525E+04,2.4590163934426E+06$
{following type code and
2.3626557377049E+04,5.1180327868852E+06,,,,,
{node names
OPEN
1.E7
BLANK card finishing all branch cards
BLANK card ending non-existent switch cards
14GEN
70. .1591549
-1.
BLANK card terminating program source cards
1
{ Request for all node voltage outputs
C PRINTER PLOT
C 193 .5 0.0 4.0
LOADFF
GEN
GENT
BLANK card terminating plot cards
$WIDTH, 132, { Done with 80 columns, so return to wide, 132-column LUNIT6 output
BEGIN NEW DATA CASE
BLANK
Rulebook ATP (junio 1996 - internet)
H25
1
XXV EMTP BENCHMARK CATALOGUE
Following is a classification of all benchmarks, according to topics
discussed in the Rule Book. A first division distincts between benchmarks
illustrating supporting routines and benchmarks documenting simulation runs. Any
remark that could contribute to the updating or improvement of this list greatly
will be acknowledged.
Supporting routines
Further subdivisions are based on special request words as found in the Rule
Book.
JMARTI setup:
DCN3,DCN5,DCN6,DCP20
LINE CONSTANTS:
DC29,DC59,DC60,DCN3,DCN5,DCN6,DCP20
CABLE CONSTANTS:
DC27,DC28
SEMLYEN setup:
DC29,DC60
XFORMER:
DC15
BCTRAN:
DCN8
DATA BASE MODULE:
DC36
SATURATION (CONVERT):
DC13
HYSTERESIS:
DC13
NETWORK EQUIVALENT:
DC14
OLD to new ZnO:
DC13
CHANGE SWITCH:
DC14
ZnO FITTER:
DC38,DC39
KILL CODES:
DC13
Simulation part
Rulebook ATP (junio 1996 - internet)
H25
Further subdivisions are based on the models used in the network simulation.
In most cases, these models are referred to, using special request words (as used
in the Rule Book).
TACS
TACS HYBRID:
DC1,DC2,DC8,DC19,DC20,DC22,DC30,DC33,DC37,DC38,DC43,DC45,DC47,DC57,DC63,DCN2,
DCN10,DCP17
TACS STAND ALONE:
DC18,DC19,DC20,DC21,DC23,DC46,DCP24
USAGE OF LINE MODELS
CONSTANT PARAMETER MODEL (0,1,2) :
DC1,DC2,DC3,DC4,DC5,DC6,DC7,DC9,DC10,DC12,DC16,DC19,DC20,DC22,DC24,DC25,DC26,
DC30,DC31,DC32,DC34,DC35,DC38,DC41,DC42,DC43,DC44,DC45,DC47,DC48,DC50,DC51,DC
52,DC53,DC55,DC56,DC57,DC58,DC61,DC62,DC63,DCN1,DCN2,DCN4,DCN7,DCN9,DCN10,DCN
11,DCN12,DCP1,DCP10,DCP11,DCP13,DCP14,DCP15,DCP16,DCP17,DCP18,DCP19,DCP2,DCP2
1,DCP22,DCP26,DCP3,DCP4,DCP5,DCP6,DCP7,DCP8,DCP9
KCLEE MODEL (-1,-2,-3):
DC1,DC2,DC7,DC12,DC16,DC24,DC31,DC32,DC37,DC38,DC41,DC47,DC50,DC52,DC61,DC62,
DC63,DCN4,DCN7,DCP1,DCP10,DCP13,DCP18,DCP19,DCP6,DCP8
JMARTI MODEL:
DCN4,DCN7
SEMLYEN MODEL:
DC31,DC61
CASCADE PI:
DC9,DC10,DCP25
USAGE OF TRANSFORMER MODELS
SATURABLE TRANSFORMER:
DC5,DC25,DC32,DC47,DC51,DC53,DCP11,DCP15,DCP21
PI-CIRCUIT:
DC1,DC2,DC11,DC25,DC26,DC53,DC63,DCN9,DCN10,DCN11,DCP21,DCP26
USAGE OF NON-LINEAR ELEMENTS
TYPE 91
DC22,DC38,DC42,DC43
TYPE 92
DC37,DC38
2
Rulebook ATP (junio 1996 - internet)
H25
3
TYPE 93
DC4,DC7,DC45,DC56,DC58,DCP15,DCP22
TYPE 96
DC45
TYPE 97
DC42,DCP5
TYPE 98
DCN7,DCP15
TYPE 99
DCN7,DCP6
ZINC OXIDE
DC37
USAGE OF SWITCHES
TIME,VOLTAGE OR CURRENT-CONTROLLED SWITCHES:
DC1,DC2,DC3,DC7,DC12,DC16,DC19,DC20,DC24,DC25,DC26,DC30,DC31,DC32,DC41,DC43,D
C47,DC48,DC50,DC52,DC53,DC55,DC57,DC61,DC62,DC63,DCN2,DCN4,DCN7,DCN9,DCN10,DC
N11,DCP1,DCP10,DCP12,DCP13,DCP17,DCP18,DCP19,DCP2,DCP21,DCP26,DCP6,DCP7,
DCP8,DCP9
DIODES OR THYRISTORS (TYPE 11):
DC1,DC2,DC30,DC32,DC57,DC63
Rulebook ATP (junio 1996 - internet)
H25
SPARK GAP OR TRIAC (TYPE 12):
no illustration found
TACS CONTROLLED SWITCHES (TYPE 13):
no illustration found
STATISTIC SWITCH (TYPE 76):
DC16,DC24,DC50,DCP13
MEASURING:
DC33
USAGE OF SOURCES
STATIC ELECTRIC NETWORK SOURCE FUNCTIONS:
DC1,DC2,DC3,DC4,DC5,DC6,DC7,DC9,DC10,DC11,DC12,DC16,DC17,DC19,DC22,DC24,DC25
DC26,DC30,DC31,DC32,DC34,DC35,DC37,DC38,DC41,DC42,DC43,DC44,DC45,DC47,DC48,
DC51,DC52,DC53,DC55,DC56,DC57,DC58,DC61,DC62,DC63,DCN1,DCN2,DCN4,DCN7,DCN9,
DCN10,DCN11,DCN12,DCP1,DCP10,DCP11,DCP12,DCP13,DCP14,DCP15,DCP16,DCP17,DCP18
DCP19,DCP2,DCP21,DCP22,DCP25,DCP26,DCP3,DCP4,DCP5,DCP6,DCP7,DCP8,DCP9
TYPE 16:
DC44
IDEAL TRANSFORMER (TYPE 18):
DC25,DC55
TYPE 60:
DC22
SM (TYPE 59):
DC25,DC26,DC47,DC53,DCN9,DCN10,DCN11,DCP21,DCP26
UM (TYPE 19):
DC34,DC35,DCN1,DCN2,DCN9,DCN10,DCN12,DCP16,DCP17,DCP21
FIX SOURCE (LOAD FLOW):
DC25,DC26,DCP26
ANALYTIC SOURCE (TYPE 1-10):
DC6,DC42
STATISTICAL TABULATION
STATISTICAL SWITCH (TYPE 76):
DC16,DC24,DC50,DCP13
STATISTICS DATA:
DC24,DC40,DC48
OMIT BASE CASE:
DCP13
4
Rulebook ATP (junio 1996 - internet)
SPECIAL FEATURES
START AGAIN:
DC40,DC49
DISK PLOT DATA:
DC3,DC45,DC54
SPY USAGE:
DC57, DCP22
PEAK VOLTAGE MONITOR:
DC61,DC62
$INCLUDE:
DC8,DC17,DCP23
/-CARD USAGE:
DC33
FOURIER ANALYSIS:
DC42
POSTPROCESS PLOT FILE:
DC46
REPLOT:
DC54
BATCH MODE PLOTTING:
DC42,DC46
Last edited 27/09/88
M. Ulens
G. Empereur
1
H25
5
Rulebook ATP - Errata
1
LIST OF RULE BOOK ERRATA
XXI - LINE CONSTANTS
p7 - parameter FCAR - unusual usage!
In derrogation to all other places in the Rule Book, blank and zero have a
different meaning for parameter FCAR. This is because in the code (SUBR25), card
image interpretation is using character string detection rather than the F10.6
format
specifier. Moreover, blank and 1 have the same meaning in this
particular case. Be carefull. This was maintained in order to stay compatible
with older versions of LINE CONSTANTS. In order to avoid confusion, however, it
is advisable not to use blank.
p28 - Applications - additional remarks.
This section refers to the creation of punched card output. In that case, one
should not forget to specify the DIST-parameter in cols 45-52 of the frequency
card.
For a description of the DIST-parameter, we refer to p20.
This modification must be added on following pages:
p7, 12, 16, 24, 25
The Rule Book page p4D-2 depicts such set of punched cards for a K.C.Lee model.
XXIII - CABLE CONSTANTS
p15 - parameter ISYST - wrong description.
ISYST = 0 : pipe in the air, touching the earth surface (rather than the wrong
description: pipe of infinite thickness)
p38 - general remark: - wrong description.
X is
XOPT
C is
(not
in mH (not Ohm), for the specified section length, so use
=0. (not FREQ).
in µF (not micro mho) for the specified section length, so use COPT =0.
FREQ).
XIX-C - BCTRAN - some new guidelines
p15: The note, near the end of the example becomes obsolete, because
starting from ATP3, these shunt resistances are automatically taken
into account.
p20: similar remark for note 1. Note 2 (p21) still remains valid!
p21: the specification of $UNITS and $VINTAGE is performed
automatically since ATP3. Be carefull, however, since the $UNITS
always is tricky (it has to be reset to the network value after the
BCTRAN punched cards).
2
Rulebook ATP - Errata
IV - Branch Cards
The current Rule Book still refers to an option "USE AB". Since ATP1, however,
this option was modified into "USE AR". Whereas for the old notation
USE AB ===> A = L-1
B = R
the meaning of parameters now is modified
USE AR ===> A = L-1
R = R
This request should be preceeded by the request
$UNITS, 0.1591549, 0.
the same way as used in BCTRAN.
Keep this in mind when rading following Rule Book pages:
4B-4
4C-4
4D1-5
Related documents
Download